Zgodovina SQL Oracle

Avtor: John Pratt
Datum Ustvarjanja: 10 Januar 2021
Datum Posodobitve: 6 November 2024
Anonim
Justin Shi: Blockchain, Cryptocurrency and the Achilles Heel in Software Developments
Video.: Justin Shi: Blockchain, Cryptocurrency and the Achilles Heel in Software Developments

Vsebina

Ker Oracle zbira vzorce in zapiše vse aktivne seje v bazo podatkov, preprosta poizvedba omogoča pridobitev zgodovine stavkov SQL za dano časovno obdobje.


Oracle zapiše zgodovinske informacije SQL v v $ active_session_history (prenosni računalnik s podatkovno zbirko na 15,4-palčni široki zaslonski sliki .shock iz Fotolia.com)

Pomen

Oracle samodejno zbira vzorce vseh sej, ki se izvajajo v bazi podatkov vsako sekundo, in shrani informacije iz zgodovine SQL v pogled v slovar podatkov v $ active_session_history. To je krožni vmesni pomnilnik, tako da ko postane poln, Oracle samodejno shrani svoje podatke v pogled slovar podatkov dba_hist_active_sess_history, preden ga prepiše.

Funkcija

Zgodovino stavkov SQL, ki se izvajajo v določenem časovnem obdobju v bazi podatkov, lahko dobite s poizvedovanjem v teh dveh pogledih. Naslednja poizvedba vrne na primer seznam prvih 4000 znakov stavkov SQL, izvedenih med 9.00 in 9.05 uro 30. septembra 2010:

izberite a.sql_id, dbms_lob.substr (b.sql_text, 4000,1) iz dba_hist_active_sess_history a, dba_hist_sqltext b


kjer je sample_time med to_date ('20100930: 09: 00', 'yyyymmdd: hh24: mi')

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

sindikata

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

kjer je sample_time med to_date ('20100930: 09: 00', 'yyyymmdd: hh24: mi') in

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

Premisleki

Poleg tega Oracle generira urne statistične podatke za izvajanje stavkov SQL v samodejnem repozitoriju obremenitve. Vidite lahko, kateri stavki SQL zahtevajo več sredstev v določenem času s poizvedovanjem pogledov podatkovnega slovarja dba_hist_sqlstat in dba_hist_snapshot.

Učinki

Naslednja poizvedba na primer vrne seznam stavkov SQL, ki se izvajajo med 9. in 10. uro, poleg časa CPU, pretečenega časa, časa io_wait in števila dostopov do diska. Izhod je urejen po CPU času.


izberite a.sql_id, dbms_lob.substr (b.sql_text, 1000,1), cpu_time_delta, elapsed_time_delta, iowait_delta, disk_reads_delta iz dba_hist_sqlstat a, dba_hist_sqltext b kjer je a.sql_id = b.sql_id in snap_id = (izberite ločeno snap_id od dba_hist_snapshot kjer do_Char (begin_interval_time, 'yyyymmdd: hh24: mi') = '20100930: 09: 00' in to_char (end_interval_time, 'yyyymmdd: hh24: mi') = '20100930: 10: 00' naročilo po cpu_time

/