dba_hist_sqlstat Oracle 中的 DELTA 和 TOTAL 列有什么区别?

dba_hist_sqlstat Oracle 中的 DELTA 和 TOTAL 列有什么区别?

我使用以下查询来衡量两个视图之间的性能改进

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 排序)。

相关内容