Est-ce que quelqu'un connaît une requête qui me donne des détails lors de la dernière fois qu'une table Netezza a été accessible pour l'une des opérations (sélectionner, insérer ou mettre à jour)?
Merci
Vous pouvez configurer une - base de données d'historique (à l'aide de nzhistcreatedb
) qui agit comme un journal d'accès détaillé, puis consultez-les les vues et les tables qu'il fournit (par exemple, $v_hist_table_access_stats
).
Si vous ne l'avez pas déjà fait en place, je ne suis au courant d'aucune façon de savoir qui a accédé à une table, sauf si vous pêchez dans les journaux dans /nz/kit/log/postgres/
.
Vous pouvez aussi vous adapter. Pour vérifier quel est le dernier connexions par utilisateur par base de données
Mettez chaque nom de base de données sur un fichier appelé db.txt aller dans le répertoire de journal comme indiqué précédemment (/ nz/kit/journal/postgres), puis exécutez ce script:
#!/bin/ksh
for database in `cat db.txt`
do
echo "Base $database :"
cat pg.log*|grep ${database}|grep connection|grep user|awk ' { print $8 }'|sort -u|grep -v Host>tempo_user.txt
for USER in `cat tempo_user.txt|awk -F"=" ' { print $2 } '`
do
export RESU=`cat pg.log*|grep ${database}|grep connection|grep ${USER}|sort -u|tail -1`
echo "Last connexion of ${USER} on ${database} : ${RESU}"
done
done
#
ce serait...
SELECT FORMAT_TABLE_ACCESS(usage),
hq.submittime
FROM "$v_hist_queries" hq
INNER JOIN "$hist_table_access_3" hta
USING (NPSID, NPSINSTANCEID, OPID, SESSIONID)
WHERE hq.dbname = 'URBN_TARGET'
AND hta.tablename = 'CUSTOMER_ORDER_RANK'
AND hq.SUBMITTIME > '01-01-2015'
AND hq.SUBMITTIME <= CURRENT_DATE
AND
(
instr(FORMAT_TABLE_ACCESS(usage),'ins') > 0
OR instr(FORMAT_TABLE_ACCESS(usage),'upd') > 0
OR instr(FORMAT_TABLE_ACCESS(usage),'del') > 0
OR instr(FORMAT_TABLE_ACCESS(usage),'read') > 0
)
AND status=0;