Awr snapshots dbtime xls
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic (export) |
| Domaine | AWR – snapshots / DB Time |
| Voir aussi | ASMr snapshots dbtime |
Awr snapshots dbtime xls calcule exactement le même rapport que ASMr snapshots dbtime (DB Time consommé par intervalle de snapshot AWR), mais produit une sortie texte tabulée par des tabulations (chr(9)), sans en-têtes ni mise en forme SQL*Plus, directement exploitable par un copier-coller ou un import dans un tableur (Excel, LibreOffice Calc). Le fichier de sortie est nommé automatiquement à partir du nom de la base et de la date du jour.
Script
-- Rapport AWR : DB Time par intervalle de snapshot, sortie tabulee pour tableur
SET TERMOUT OFF
COLUMN current_instance NEW_VALUE current_instance NOPRINT
SELECT RPAD(SYS_CONTEXT('USERENV', 'INSTANCE_NAME'), 17) current_instance FROM dual;
SET TERMOUT ON
PROMPT
PROMPT +------------------------------------------------------------------------+
PROMPT | Rapport : AWR Snapshots (DB Time) - export tableur |
PROMPT | Instance : ¤t_instance |
PROMPT +------------------------------------------------------------------------+
SET ECHO OFF
SET FEEDBACK OFF
SET HEADING OFF
SET LINESIZE 32767
SET PAGESIZE 50000
SET TERMOUT OFF
SET VERIFY OFF
CLEAR COLUMNS
CLEAR BREAKS
CLEAR COMPUTES
DEFINE fileName = awr_snapshots_dbtime_xls
COLUMN dbname NEW_VALUE _dbname NOPRINT
SELECT name dbname FROM v$database;
COLUMN spool_time NEW_VALUE _spool_time NOPRINT
SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') spool_time FROM dual;
SPOOL &FileName._&_dbname._&_spool_time..txt
SELECT
'Instance Name' || chr(9)
|| 'Instance Startup Time' || chr(9)
|| 'Begin Interval Time' || chr(9)
|| 'End Interval Time' || chr(9)
|| 'Elapsed Time (min)' || chr(9)
|| 'DB Time (min)' || chr(9)
|| '% DB Time'
FROM dual;
SELECT
i.instance_name || chr(9)
|| TO_CHAR(s.startup_time, 'mm/dd/yyyy HH24:MI:SS') || chr(9)
|| TO_CHAR(s.begin_interval_time, 'mm/dd/yyyy HH24:MI:SS') || chr(9)
|| TO_CHAR(s.end_interval_time, 'mm/dd/yyyy HH24:MI:SS') || chr(9)
|| ROUND(EXTRACT(DAY FROM s.end_interval_time - s.begin_interval_time) * 1440 +
EXTRACT(HOUR FROM s.end_interval_time - s.begin_interval_time) * 60 +
EXTRACT(MINUTE FROM s.end_interval_time - s.begin_interval_time) +
EXTRACT(SECOND FROM s.end_interval_time - s.begin_interval_time) / 60, 2) || chr(9)
|| ROUND((e.value - b.value) / 1000000 / 60, 2) || chr(9)
|| ROUND((((e.value - b.value) / 1000000 / 60) /
(EXTRACT(DAY FROM s.end_interval_time - s.begin_interval_time) * 1440 +
EXTRACT(HOUR FROM s.end_interval_time - s.begin_interval_time) * 60 +
EXTRACT(MINUTE FROM s.end_interval_time - s.begin_interval_time) +
EXTRACT(SECOND FROM s.end_interval_time - s.begin_interval_time) / 60) * 100), 2) instance_db_time
FROM
dba_hist_snapshot s
, gv$instance i
, dba_hist_sys_time_model e
, dba_hist_sys_time_model b
WHERE
i.instance_number = s.instance_number
AND e.snap_id = s.snap_id
AND b.snap_id = s.snap_id - 1
AND e.stat_id = b.stat_id
AND e.instance_number = b.instance_number
AND e.instance_number = s.instance_number
AND e.stat_name = 'DB time'
ORDER BY
i.instance_name, s.snap_id;
SPOOL OFF
SET FEEDBACK 6
SET HEADING ON
SET TERMOUT ON
PROMPT Rapport ecrit dans &FileName._&_dbname._&_spool_time..txt
Colonnes / sortie
- Fichier de sortie nommé
awr_snapshots_dbtime_xls_<NOM_BASE>_<AAAAMMJJ>.txt, séparé par tabulations, première ligne = en-têtes de colonnes. - Mêmes colonnes et même méthode de calcul du DB Time que ASMr snapshots dbtime (voir cette page pour le détail).
Voir aussi
- ASMr snapshots dbtime — même rapport en sortie SQL*Plus classique (colonnes formatées, cumuls)