我使用以下查询来衡量两个视图之间的性能改进
SELECT PARSING_SCHEMA_NAME,
SQL_TEXT,
OPTIMIZER_COST,
FETCHES_TOTAL,
FETCHES_DELTA,
EXECUTIONS_TOTAL,
EXECUTIONS_DELTA,
PARSE_CALLS_TOTAL,
PARSE_CALLS_DELTA,
DISK_READS_TOTAL,
DISK_READS_DELTA,
BUFFER_GETS_TOTAL,
BUFFER_GETS_DELTA,
ROWS_PROCESSED_TOTAL,
ROWS_PROCESSED_DELTA,
CPU_TIME_TOTAL,
CPU_TIME_DELTA,
ELAPSED_TIME_TOTAL,
ELAPSED_TIME_DELTA,
elapsed_time_delta / 1000 / 1000 AS elapsed_sec,
stat.snap_id,
TO_CHAR(SNAP.END_INTERVAL_TIME, 'dd.mm hh24:mi:ss') AS SNAPTIME,
txt.sql_id
FROM dba_hist_sqlstat stat,
dba_hist_sqltext txt,
dba_hist_snapshot snap
WHERE stat.sql_id = txt.sql_id
AND STAT.SNAP_ID = SNAP.SNAP_ID
AND SNAP.BEGIN_INTERVAL_TIME >= SYSDATE - 10
AND (
LOWER(SQL_TEXT) LIKE '%view1_name%'
OR LOWER(SQL_TEXT) LIKE '%view2_name%'
)
AND PARSING_SCHEMA_NAME NOT IN ('SYS', 'SYSMAN')
ORDER BY elapsed_time_delta ASC;
上述查询中的 DELTA 和 TOTAL 列之间有什么区别?衡量视图之间的性能变化时应考虑哪组列?
答案1
CPU 时间总计表示您的语句使用了多少秒的 CPU。它是 CPU 解析/执行/获取时间的累计值。
CPU 时间增量正在测量轮询周期之间的使用情况。
其逻辑如下:它可以帮助您区分当前使用大量 CPU 时间的会话(按 CPU Delta 排序)和在其生命周期内使用大量 CPU 时间的会话(按 CPU Total 排序)。