Я использую следующий запрос для измерения улучшения производительности между двумя представлениями

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 ответ1

0

Общее время процессора означает, что ваш оператор использовал процессор в течение этого количества секунд. Это кумулятивное значение процессорного времени для анализа / выполнения / выборки.

CPU Time Delta измеряет использование между циклами опроса.

Логика этого заключается в следующем: он помогает вам разделить те сеансы, которые в настоящее время используют много процессорного времени (сортировка их по разнице ЦП), и те, которые в течение своего времени использовали много процессорного времени (сортировка их по процессору). Всего).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .