elapsed_time_delta в dba_hist_sqlstats не является фактическим временем выполнения запроса? - PullRequest
0 голосов
/ 08 июня 2018

Я пытался изучить таблицу DBA_HIST_SQLSTAT.Встречается двусмысленность с колонкой (на самом деле намного больше) ELAPSED_TIME_DELTA.Я запустил простой запрос на удаление и отметил, что время заняло.Но когда я запрашиваю DBA_HIST_SQLSTAT и смотрю на столбец ELAPSED_TIME_DELTA (я знаю, что единицы измерения - мс), показывается время, отличное от того, что я записал вручную.Что все попадает под ELAPSED_TIME_DELTA в DBA_HIST_SQLSTAT таблицу?Любое объяснение с примером высоко ценится.

1 Ответ

0 голосов
/ 09 июня 2018

(Предполагается, что вы имеете в виду ELAPSED_TIME столбцы. В DBA_HIST_SQLSTAT нет столбца EXECUTION_TIME).

* elapsed_time_delta - это разница между elapsed_time_total предыдущей привязки и текущейsnap.

elapsed_time_total - это общее время, потраченное на выполнение этого запроса с момента его помещения в кэш библиотеки.Это не обязательно будет равняться «настенным часам» времени любого отдельного выполнения этого запроса, за исключением, возможно, самого 1-го выполнения запроса 1-м пользователем - и только если вы захватили snap_id после этого 1-го выполненияи перед любыми последующими казнями.

Это сложно сделать и не всегда возможно.Вообще говоря, вы не можете использовать DBA_HIST_SQLSTAT, чтобы сказать, сколько времени Oracle потратил на выполнение определенного выполнения определенного запроса.

Что вы можете сказать, это сколько времени Oracle потратила на выполнение этого запроса в среднем - путем нахождения последних snap_id процентов и деления elapsed_time_total на nullif(executions_total,0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...