web-dev-qa-db-fra.com

Dernier horodatage d'une table Netezza?

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

1
user70022

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/.

1
Carl

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
#
0
Chris DBA

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;
0
Ram Barot