История на Oracle SQL

Автор: Roger Morrison
Дата На Създаване: 7 Септември 2021
Дата На Актуализиране: 10 Може 2024
Anonim
#07. Основы работы в Oracle SQL Developer
Видео: #07. Основы работы в Oracle SQL Developer

Съдържание

Тъй като Oracle събира проби и записва всички активни сесии в базата данни, обикновено запитване ви позволява да извлечете историята на SQL изразите за даден период от време.


Oracle записва историческа SQL информация в v $ active_session_history (лаптоп с запис на база данни на 15.4 "широк екран от .shock от Fotolia.com)

важност

Oracle автоматично събира проби от всички сесии, които се изпълняват в базата данни всяка секунда и записва информация от историята на SQL в изгледа на речника на данни v $ active_session_history. Това е кръгъл буфер, така че когато се напълни, Oracle автоматично съхранява информацията си в изгледа на речника на dba_hist_active_sess_history, преди да го презапише.

функция

Можете да получите история на SQL изрази, изпълнявани за определен период от време в базата данни, като попитате тези два изгледа. Например следната заявка връща списъка с първите 4000 знака на SQL изрази, изпълнени между 9:00 и 9:05 ч. На 30 септември 2010 г .:

изберете a.sql_id, dbms_lob.substr (b.sql_text, 4000,1) от dba_hist_active_sess_history a, dba_hist_sqltext b


където sample_time между to_date ('20100930: 09: 00', 'yyyymmdd: hh24: mi')

и to_date ('20100930: 09: 01', 'yyyymmdd: hh24: mi') и b.sql_id = a.sql_id

съюз

изберете a.sql_id, dbms_lob.substr (b.sql_text, 4000,1) от v $ active_session_history a, v $ sqlarea b

където sample_time между to_date ('20100930: 09: 00', 'yyyymmdd: hh24: mi') и

to_date ('20100930: 09: 01', 'yyyymmdd: hh24: mi') и b.sql_id = a.sql_id

съображения

В допълнение, Oracle генерира почасова статистика за изпълнение на SQL изрази в автоматичното си хранилище за работна натовареност. Можете да видите кои SQL изрази изискват повече ресурси в даден момент, като потърсите изгледите на речника на данните в dba_hist_sqlstat и dba_hist_snapshot.

вещи

Например, следната заявка връща списък на SQL изрази, изпълнени между 9 и 10 часа, в допълнение към времето на процесора, изминалото време, времето на io_wait и броя на достъп до диска. Изходът се подрежда по време на процесора.


изберете a.sql_id, dbms_lob.substr (b.sql_text, 1000,1), cpu_time_delta, elapsed_time_delta, iowait_delta, disk_reads_delta от dba_hist_sqlstat a, dba_hist_sqltext b, където a.sql_id = b.sql_id и snap_id = (изберете различен snap_id от dba_hist_snapshot, където to_Char (begin_interval_time, 'yyyymmdd: hh24: mi') = '20100930: 09: 00' и to_char (end_interval_time, 'yyyymmdd: hh24: mi') = '20100930: 10: 00' поръчка от cpu_time

/