Oracle SQL vēsture

Autors: John Pratt
Radīšanas Datums: 10 Janvārī 2021
Atjaunināšanas Datums: 3 Maijs 2024
Anonim
Apģērbs dzelzs laikmetā 8.-12.gs.
Video: Apģērbs dzelzs laikmetā 8.-12.gs.

Saturs

Tā kā Oracle apkopo paraugus un raksta visas aktīvās sesijas datu bāzē, vienkāršs vaicājums ļauj iegūt SQL pārskata vēsturi noteiktam laika periodam.


Oracle raksta vēsturisko SQL informāciju v $ active_session_history (klēpjdators ar datu bāzes ierakstu 15,4 collu platekrāna attēlā ar .shock no Fotolia.com)

Nozīme

Oracle automātiski apkopo paraugus no visām sesijām, kas darbojas datubāzē katru otro, un saglabā informāciju no SQL vēstures datu vārdnīcu skatā v $ active_session_history. Tas ir cirkulārs buferis, tāpēc, kad tā kļūst pilnīga, pirms tās pārrakstīšanas Oracle automātiski saglabā informāciju dba_hist_active_sess_history datu vārdnīcu skatā.

Funkcija

Jūs varat iegūt datubāzē laika posmā izpildītu SQL paziņojumu vēsturi, vaicājot šos divus skatus. Piemēram, nākamajā vaicājumā tiek parādīts saraksts ar pirmajām 4000 rakstzīmēm no SQL, kas izpildīts no 2010. gada 30. septembra līdz plkst. 9:05:

atlasiet a.sql_id, dbms_lob.substr (b.sql_text, 4000,1) no dba_hist_active_sess_history a, dba_hist_sqltext b


kur paraugs_time starp to_date ('20100930: 09: 00', 'yyyymmdd: hh24: mi')

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

savienība visi

atlasiet a.sql_id, dbms_lob.substr (b.sql_text, 4000,1) no v $ active_session_history a, v $ sqlarea b

kur paraugs_time starp to_date ('20100930: 09: 00', 'yyyymmdd: hh24: mi') un

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

Apsvērumi

Turklāt Oracle automātiskās darba slodzes repozitorijā ģenerē stundas izpildīšanas statistiku SQL paziņojumiem. Jūs varat redzēt, kuri SQL paziņojumi prasa vairāk resursu noteiktā laikā, vaicājot dba_hist_sqlstat un dba_hist_snapshot datu vārdnīcas skatus.

Ietekme

Piemēram, nākamais vaicājums atgriež sarakstu ar SQL paziņojumiem, kas izpildīti laikā no 9:00 līdz 10:00, papildus CPU laikam, pagājušajam laikam, io_wait laikam un diska piekļuves skaitam. Izeja tiek pasūtīta pēc CPU laika.


izvēlieties a.sql_id, dbms_lob.substr (b.sql_text, 1000,1), cpu_time_delta, no_delta, iowait_delta, disk_reads_delta no dba_hist_sqlstat a, dba_hist_sqltext b, kur a.sql_id = b.sql_id un snap_id = (atlasiet atsevišķu snap_id no dba_hist_snapshot, kur_Char (begin_interval_time, 'yyyymmdd: hh24: mi') = '20100930: 09: 00' un to_char (end_interval_time, 'yyyymmdd: hh24: mi') = '20100930: 10: 00' pasūtījums pēc cpu_time

/