|
Время выполнения запроса
|
|||
---|---|---|---|
#18+
Добрый день, коллеги! Возник простой вопрос, проверить время выполнения определенного запроса, зная его SQL_ID. Если запрос прогонялся недавно и попадал под условия мониторинга в SQL Monitor, то всю необходимую информацию можно получить из v$sql_monitor (sql_id, plan_hash_value, sql_exec_start, elapsed_time, status). Однако, что если нужно посмотреть как данный запрос выполнялся в течение недели? В таком случае большинство запросов, которые мне удалось найти использую вьюхи DBA_HIST_SQLSTAT, DBA_HIST_SNAPSHOT. Но здесь проблема в том, что время выполнения прогона запроса = elapsed_time_total / executions_total = то есть это усредненное значение. И здесь можно легко получить неправильную информацию, если при каких-то вымышленных обстоятельствах запрос в 1ый прогон выполнился за 1 сек, а во второй прогон за 35 сек, тогда у нас получится время выполнения среднее 18 сек на 1 прогон, но это ведь искажает картину происходящего. Поправьте меня, если я неправильно понимаю. 1371778.1 - в этом документе приведен тоже запрос по поиску нужной информации из AWR, но там вновь показывается среднее значение. Вероятно историческая информация о времени выполнения определенного запроса для каждого его прогона (sql_exec_id) не хранится, слишком дорого это хранить, особенного на нагруженных базах? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2020, 10:25 |
|
Время выполнения запроса
|
|||
---|---|---|---|
#18+
Dr. Oracle, Обратите также внимание на elapsed_time_delta/executions_delta в DBA_HIST_SNAPSHOT. Это, конечно, тоже усреднённые значения, но уже хотя бы в пределах снапшота. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2020, 11:20 |
|
Время выполнения запроса
|
|||
---|---|---|---|
#18+
Спасибо за совет. Мне важно понимать, есть ли вообще в Оракле возможность найти историческую информацию от конкретном выполнении (sql_exec_id или нечто аналогичное) запроса, или же все что есть это только вот эти средние значения? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2020, 11:35 |
|
Время выполнения запроса
|
|||
---|---|---|---|
#18+
Частично мне удается получить необходимую информацию из DBA_HIST_ACTIVE_SESS_HISTORY, но там если сравнить в тем что в реальности было тоже не очень сходится, но возможно я не очень правльно считаю там. Просто я немного поразился, что вроде вопрос достаточно простой и в Оракле куча таблиц/вьюх и прочего, что собирает и хранит диагностическую информацию, а найти ответ и достаточно быстро не получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2020, 11:41 |
|
Время выполнения запроса
|
|||
---|---|---|---|
#18+
Dr. Oracle Просто я немного поразился, что вроде вопрос достаточно простой и в Оракле куча таблиц/вьюх и прочего, что собирает и хранит диагностическую информацию, а найти ответ и достаточно быстро не получается. Dr. Oracle Если запрос прогонялся недавно и попадал под условия мониторинга в SQL Monitor, то всю необходимую информацию можно получить из v$sql_monitor (sql_id, plan_hash_value, sql_exec_start, elapsed_time, status) https://mauro-pagano.com/2015/05/04/historical-sql-monitor-reports-in-12c/ How To Get Historical SQL Monitor Report For SQL Statements (Doc ID 2555350.1) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2020, 12:18 |
|
|
start [/forum/topic.php?fid=52&msg=39980807&tid=1881057]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
99ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 208ms |
0 / 0 |