Базы данных Oracle - статьи



             

Пример 1


Если сравнить полученную в предыдущем примере итоговую статистическую информацию по объектам с представленной ниже реальной статистической информацией уровня оператора, можно увидеть, что общее количество логических чтений для всех сегментов равно количеству логических чтений в ходе операций EXEC и FETCH при выполнении оператора. То же самое верно и для физических чтений. Это не всегда верно, но в итоговую информацию заведомо войдет подмножество соответствующих значений, которые будут не больше и, возможно, равны суммарным значениям в статистической информации для оператора.

STATEMENT STATISTICS

Action Count CPU Elapsed PIO Blks LIO Blks Consistent Current Rows ----- ----- --------- --------- -------- -------- ---------- ------- ------ PARSE 1 0.090000 0.142649 6 149 149 0 0 EXEC 1 0.000000 0.000465 0 0 0 0 0 FETCH 2 0.020000 0.031909 4 167 167 0 1 ------ --- ---------- --------- -------- -------- ---------- ------- ----- Total 4 0.110000 0.175023 10 316 316 0 1

Проверка реального времени выполнения (elapsed time) для статистической информации уровня сегмента представляет собой интересную проблему. Если посмотреть на реальное время выполнения операций EXEC и FETCH, и вычесть процессорное время (CPU), получаем значение 0.012374 секунды, или 12374 us. Если затем посмотреть на общее время выполнения в нашей статистике по сегментам, там можно увидеть значение 0.027996 секунды, или 27996 us, но, если вернуться и проанализировать общее время по всем источникам строк (т.е. time=31888 us), то получается немного меньше, чем общее время выполнения операций EXEC и FETCH, 0.032374 секунды, или 32374 us. В этом есть смысл, если учесть, что общее время выполнения в статистической информации уровня сегментов включает процессорное время (CPU time), необходимое для доступа к источнику строк (т.е. логического ввода-вывода), а не только время выполнения физического ввода-вывода. Следует также отметить, что в этом случае не было ввода-вывода "current mode", но подробнее об этом - в следующем примере.

Давайте рассмотрим еще пару примеров. Что произойдет, если есть логический ввод-вывод current mode

(т.е. cu= в операциях EXEC или FETCH), или в статистической информации на уровне оператора будут ненулевые значения и для EXEC, и для FETCH?




Содержание  Назад  Вперед