以下SQL脚本可以用于列出数据库最近1分钟的性能度量信息(performance metric):
set linesize 80 pagesize 1400 SELECT /*+ ORDERED USE_MERGE(m) */ TO_CHAR(FROM_TZ(CAST(m.end_time AS TIMESTAMP), TO_CHAR(systimestamp, 'tzr')) AT TIME ZONE sessiontimezone, 'YYYY-MM-DD HH24:MI:SS'), SUM(CASE WHEN a.internal_metric_name = 'transactions_ps' THEN m.value ELSE 0 END) transactions_ps, SUM(CASE WHEN a.internal_metric_name = 'physreads_ps' THEN m.value ELSE 0 END) physreads_ps, SUM(CASE WHEN a.internal_metric_name = 'physreads_pt' THEN m.value ELSE 0 END) physreads_pt, SUM(CASE WHEN a.internal_metric_name = 'physwrites_ps' THEN m.value ELSE 0 END) physwrites_ps, SUM(CASE WHEN a.internal_metric_name = 'physwrites_pt' THEN m.value ELSE 0 END) physwrites_pt, SUM(CASE WHEN a.internal_metric_name = 'physreadsdir_ps' THEN m.value ELSE 0 END) physreadsdir_ps, SUM(CASE WHEN a.internal_metric_name = 'physreadsdir_pt' THEN m.value ELSE 0 END) physreadsdir_pt, SUM(CASE WHEN a.internal_metric_name = 'physwritesdir_ps' THEN m.value ELSE 0 END) physwritesdir_ps, SUM(CASE WHEN a.internal_metric_name = 'physwritesdir_pt' THEN m.value ELSE 0 END) physwritesdir_pt, SUM(CASE WHEN a.internal_metric_name = 'physreadslob_ps' THEN m.value ELSE 0 END) physreadslob_ps, SUM(CASE WHEN a.internal_metric_name = 'physreadslob_pt' THEN m.value ELSE 0 END) physreadslob_pt, SUM(CASE WHEN a.internal_metric_name = 'physwriteslob_ps' THEN m.value ELSE 0 END) physwriteslob_ps, SUM(CASE WHEN a.internal_metric_name = 'physwriteslob_pt' THEN m.value ELSE 0 END) physwriteslob_pt, SUM(CASE WHEN a.internal_metric_name = 'redosize_ps' THEN m.value ELSE 0 END) redosize_ps, SUM(CASE WHEN a.internal_metric_name = 'logons_ps' THEN m.value ELSE 0 END) logons_ps, SUM(CASE WHEN a.internal_metric_name = 'logons_pt' THEN m.value ELSE 0 END) logons_pt, SUM(CASE WHEN a.internal_metric_name = 'opncurs_ps' THEN m.value ELSE 0 END) opncurs_ps, SUM(CASE WHEN a.internal_metric_name = 'opncurs_pt' THEN m.value ELSE 0 END) opncurs_pt, SUM(CASE WHEN a.internal_metric_name = 'commits_ps' THEN m.value ELSE 0 END) commits_ps, SUM(CASE WHEN a.internal_metric_name = 'commits_pt' THEN m.value ELSE 0 END) commits_pt, SUM(CASE WHEN a.internal_metric_name = 'rollbacks_ps' THEN m.value ELSE 0 END) rollbacks_ps, SUM(CASE WHEN a.internal_metric_name = 'rollbacks_pt' THEN m.value ELSE 0 END) rollbacks_pt, SUM(CASE WHEN a.internal_metric_name = 'usercalls_ps' THEN m.value ELSE 0 END) usercalls_ps, SUM(CASE WHEN a.internal_metric_name = 'usercalls_pt' THEN m.value ELSE 0 END) usercalls_pt, SUM(CASE WHEN a.internal_metric_name = 'recurscalls_ps' THEN m.value ELSE 0 END) recurscalls_ps, SUM(CASE WHEN a.internal_metric_name = 'recurscalls_pt' THEN m.value ELSE 0 END) recurscalls_pt, SUM(CASE WHEN a.internal_metric_name = 'logreads_ps' THEN m.value ELSE 0 END) logreads_ps, SUM(CASE WHEN a.internal_metric_name = 'logreads_pt' THEN m.value ELSE 0 END) logreads_pt, SUM(CASE WHEN a.internal_metric_name = 'dbwrcheckpoints_ps' THEN m.value ELSE 0 END) dbwrcheckpoints_ps, SUM(CASE WHEN a.internal_metric_name = 'bgcheckpoints_ps' THEN m.value ELSE 0 END) bgcheckpoints_ps, SUM(CASE WHEN a.internal_metric_name = 'redowrites_ps' THEN m.value ELSE 0 END) redowrites_ps, SUM(CASE WHEN a.internal_metric_name = 'redowrites_pt' THEN m.value ELSE 0 END) redowrites_pt, SUM(CASE WHEN a.internal_metric_name = 'tabscanslong_ps' THEN m.value ELSE 0 END) tabscanslong_ps, SUM(CASE WHEN a.internal_metric_name = 'tabscanslong_pt' THEN m.value ELSE 0 END) tabscanslong_pt, SUM(CASE WHEN a.internal_metric_name = 'tabscanstotal_ps' THEN m.value ELSE 0 END) tabscanstotal_ps, SUM(CASE WHEN a.internal_metric_name = 'tabscanstotal_pt' THEN m.value ELSE 0 END) tabscanstotal_pt, SUM(CASE WHEN a.internal_metric_name = 'indxscansfull_pt' THEN m.value ELSE 0 END) indxscansfull_pt, SUM(CASE WHEN a.internal_metric_name = 'indxscansfull_ps' THEN m.value ELSE 0 END) indxscansfull_ps, SUM(CASE WHEN a.internal_metric_name = 'indxscanstotal_ps' THEN m.value ELSE 0 END) indxscanstotal_ps, SUM(CASE WHEN a.internal_metric_name = 'indxscanstotal_pt' THEN m.value ELSE 0 END) indxscanstotal_pt, SUM(CASE WHEN a.internal_metric_name = 'parses_ps' THEN m.value ELSE 0 END) parses_ps, SUM(CASE WHEN a.internal_metric_name = 'parses_pt' THEN m.value ELSE 0 END) parses_pt, SUM(CASE WHEN a.internal_metric_name = 'hardparses_ps' THEN m.value ELSE 0 END) hardparses_ps, SUM(CASE WHEN a.internal_metric_name = 'hardparses_pt' THEN m.value ELSE 0 END) hardparses_pt, SUM(CASE WHEN a.internal_metric_name = 'failedparses_ps' THEN m.value ELSE 0 END) failedparses_ps, SUM(CASE WHEN a.internal_metric_name = 'failedparses_pt' THEN m.value ELSE 0 END) failedparses_pt, SUM(CASE WHEN a.internal_metric_name = 'executions_ps' THEN m.value ELSE 0 END) executions_ps, SUM(CASE WHEN a.internal_metric_name = 'sortsdisk_ps' THEN m.value ELSE 0 END) sortsdisk_ps, SUM(CASE WHEN a.internal_metric_name = 'sortsdisk_pt' THEN m.value ELSE 0 END) sortsdisk_pt, SUM(CASE WHEN a.internal_metric_name = 'rows_psort' THEN m.value ELSE 0 END) rows_psort, SUM(CASE WHEN a.internal_metric_name = 'executeswoparse_pct' THEN m.value ELSE 0 END) executeswoparse_pct, SUM(CASE WHEN a.internal_metric_name = 'softparse_pct' THEN m.value ELSE 0 END) softparse_pct, SUM(CASE WHEN a.internal_metric_name = 'usercall_pct' THEN m.value ELSE 0 END) usercall_pct, SUM(CASE WHEN a.internal_metric_name = 'networkbytes_ps' THEN m.value ELSE 0 END) networkbytes_ps, SUM(CASE WHEN a.internal_metric_name = 'enqtimeouts_ps' THEN m.value ELSE 0 END) enqtimeouts_ps, SUM(CASE WHEN a.internal_metric_name = 'enqtimeouts_pt' THEN m.value ELSE 0 END) enqtimeouts_pt, SUM(CASE WHEN a.internal_metric_name = 'enqwaits_ps' THEN m.value ELSE 0 END) enqwaits_ps, SUM(CASE WHEN a.internal_metric_name = 'enqwaits_pt' THEN m.value ELSE 0 END) enqwaits_pt, SUM(CASE WHEN a.internal_metric_name = 'enqdeadlocks_ps' THEN m.value ELSE 0 END) enqdeadlocks_ps, SUM(CASE WHEN a.internal_metric_name = 'enqdeadlocks_pt' THEN m.value ELSE 0 END) enqdeadlocks_pt, SUM(CASE WHEN a.internal_metric_name = 'enqreqs_ps' THEN m.value ELSE 0 END) enqreqs_ps, SUM(CASE WHEN a.internal_metric_name = 'enqreqs_pt' THEN m.value ELSE 0 END) enqreqs_pt, SUM(CASE WHEN a.internal_metric_name = 'dbblkgets_ps' THEN m.value ELSE 0 END) dbblkgets_ps, SUM(CASE WHEN a.internal_metric_name = 'dbblkgets_pt' THEN m.value ELSE 0 END) dbblkgets_pt, SUM(CASE WHEN a.internal_metric_name = 'consistentreadgets_ps' THEN m.value ELSE 0 END) consistentreadgets_ps, SUM(CASE WHEN a.internal_metric_name = 'consistentreadgets_pt' THEN m.value ELSE 0 END) consistentreadgets_pt, SUM(CASE WHEN a.internal_metric_name = 'dbblkchanges_ps' THEN m.value ELSE 0 END) dbblkchanges_ps, SUM(CASE WHEN a.internal_metric_name = 'dbblkchanges_pt' THEN m.value ELSE 0 END) dbblkchanges_pt, SUM(CASE WHEN a.internal_metric_name = 'consistentreadchanges_ps' THEN m.value ELSE 0 END) consistentreadchanges_ps, SUM(CASE WHEN a.internal_metric_name = 'consistentreadchanges_pt' THEN m.value ELSE 0 END) consistentreadchanges_pt, SUM(CASE WHEN a.internal_metric_name = 'crblks_ps' THEN m.value ELSE 0 END) crblks_ps, SUM(CASE WHEN a.internal_metric_name = 'crblks_pt' THEN m.value ELSE 0 END) crblks_pt, SUM(CASE WHEN a.internal_metric_name = 'crundorecs_pt' THEN m.value ELSE 0 END) crundorecs_pt, SUM(CASE WHEN a.internal_metric_name = 'userrollbackundorec_ps' THEN m.value ELSE 0 END) userrollbackundorec_ps, SUM(CASE WHEN a.internal_metric_name = 'userrollbackundorec_pt' THEN m.value ELSE 0 END) userrollbackundorec_pt, SUM(CASE WHEN a.internal_metric_name = 'leafnodesplits_ps' THEN m.value ELSE 0 END) leafnodesplits_ps, SUM(CASE WHEN a.internal_metric_name = 'leafnodesplits_pt' THEN m.value ELSE 0 END) leafnodesplits_pt, SUM(CASE WHEN a.internal_metric_name = 'branchnodesplits_ps' THEN m.value ELSE 0 END) branchnodesplits_ps, SUM(CASE WHEN a.internal_metric_name = 'branchnodesplits_pt' THEN m.value ELSE 0 END) branchnodesplits_pt, SUM(CASE WHEN a.internal_metric_name = 'redosize_pt' THEN m.value ELSE 0 END) redosize_pt, SUM(CASE WHEN a.internal_metric_name = 'crundorecs_ps' THEN m.value ELSE 0 END) crundorecs_ps, SUM(CASE WHEN a.internal_metric_name = 'dbtime_ps' THEN m.value ELSE 0 END) dbtime_ps, SUM(CASE WHEN a.internal_metric_name = 'avg_active_sessions' THEN m.value ELSE 0 END) avg_active_sessions, SUM(CASE WHEN a.internal_metric_name = 'avg_sync_singleblk_read_latency' THEN m.value ELSE 0 END) avg_block_read_latency, SUM(CASE WHEN a.internal_metric_name = 'iombs_ps' THEN m.value ELSE 0 END) iombs_ps, SUM(CASE WHEN a.internal_metric_name = 'iorequests_ps' THEN m.value ELSE 0 END) iorequests_ps FROM v$alert_types a, v$threshold_types t, v$sysmetric m WHERE a.internal_metric_category = 'instance_throughput' AND a.reason_id = t.alert_reason_id AND t.metrics_id = m.metric_id AND m.group_id = 2 AND m.end_time <= SYSDATE GROUP BY m.end_time ORDER BY m.end_time ASC /
使用方法:
SQL> @metric TO_CHAR(FROM_TZ(CAS TRANSACTIONS_PS PHYSREADS_PS PHYSREADS_PT PHYSWRITES_PS ------------------- --------------- ------------ ------------ ------------- PHYSWRITES_PT PHYSREADSDIR_PS PHYSREADSDIR_PT PHYSWRITESDIR_PS PHYSWRITESDIR_PT ------------- --------------- --------------- ---------------- ---------------- PHYSREADSLOB_PS PHYSREADSLOB_PT PHYSWRITESLOB_PS PHYSWRITESLOB_PT REDOSIZE_PS --------------- --------------- ---------------- ---------------- ----------- LOGONS_PS LOGONS_PT OPNCURS_PS OPNCURS_PT COMMITS_PS COMMITS_PT ROLLBACKS_PS ---------- ---------- ---------- ---------- ---------- ---------- ------------ ROLLBACKS_PT USERCALLS_PS USERCALLS_PT RECURSCALLS_PS RECURSCALLS_PT LOGREADS_PS ------------ ------------ ------------ -------------- -------------- ----------- LOGREADS_PT DBWRCHECKPOINTS_PS BGCHECKPOINTS_PS REDOWRITES_PS REDOWRITES_PT ----------- ------------------ ---------------- ------------- ------------- TABSCANSLONG_PS TABSCANSLONG_PT TABSCANSTOTAL_PS TABSCANSTOTAL_PT --------------- --------------- ---------------- ---------------- INDXSCANSFULL_PT INDXSCANSFULL_PS INDXSCANSTOTAL_PS INDXSCANSTOTAL_PT PARSES_PS ---------------- ---------------- ----------------- ----------------- ---------- PARSES_PT HARDPARSES_PS HARDPARSES_PT FAILEDPARSES_PS FAILEDPARSES_PT ---------- ------------- ------------- --------------- --------------- EXECUTIONS_PS SORTSDISK_PS SORTSDISK_PT ROWS_PSORT EXECUTESWOPARSE_PCT ------------- ------------ ------------ ---------- ------------------- SOFTPARSE_PCT USERCALL_PCT NETWORKBYTES_PS ENQTIMEOUTS_PS ENQTIMEOUTS_PT ------------- ------------ --------------- -------------- -------------- ENQWAITS_PS ENQWAITS_PT ENQDEADLOCKS_PS ENQDEADLOCKS_PT ENQREQS_PS ENQREQS_PT ----------- ----------- --------------- --------------- ---------- ---------- DBBLKGETS_PS DBBLKGETS_PT CONSISTENTREADGETS_PS CONSISTENTREADGETS_PT ------------ ------------ --------------------- --------------------- DBBLKCHANGES_PS DBBLKCHANGES_PT CONSISTENTREADCHANGES_PS --------------- --------------- ------------------------ CONSISTENTREADCHANGES_PT CRBLKS_PS CRBLKS_PT CRUNDORECS_PT ------------------------ ---------- ---------- ------------- USERROLLBACKUNDOREC_PS USERROLLBACKUNDOREC_PT LEAFNODESPLITS_PS ---------------------- ---------------------- ----------------- LEAFNODESPLITS_PT BRANCHNODESPLITS_PS BRANCHNODESPLITS_PT REDOSIZE_PT ----------------- ------------------- ------------------- ----------- CRUNDORECS_PS DBTIME_PS AVG_ACTIVE_SESSIONS AVG_BLOCK_READ_LATENCY IOMBS_PS ------------- ---------- ------------------- ---------------------- ---------- IOREQUESTS_PS ------------- 2011-10-27 20:02:23 .349533955 2.69640479 7.71428571 .116511318 .333333333 .199733688 .571428571 .116511318 .333333333 .116511318 .333333333 .116511318 .333333333 16212.0506 .016644474 .047619048 19.0745672 54.5714286 .349533955 100 0 0 .349533955 1 81.1917443 232.285714 130.54261 373.47619 0 0 .515978695 1.47619048 0 0 .216378162 .619047619 0 0 19.4573901 55.6666667 4.92676431 14.0952381 1.89747004 5.42857143 0 0 20.4560586 0 0 22.026087 75.9153784 61.4864865 .42865891 995.838881 0 0 0 0 0 0 8.9713715 25.6666667 44.9400799 128.571429 85.60253 244.904762 45.1398136 129.142857 .249667111 .714285714 0 0 0 0 0 .199733688 .571428571 0 0 46381.9048 0 .023586884 .000235869 .032960413 3.09587217 195.489348 PS Per Second PT Per Transaction