Oracle SQL ajalugu

Autor: Roger Morrison
Loomise Kuupäev: 4 September 2021
Värskenduse Kuupäev: 18 November 2024
Anonim
Sqoop Import and Export data from RDMBS and HDFS
Videot: Sqoop Import and Export data from RDMBS and HDFS

Sisu

Kuna Oracle kogub proove ja kirjutab andmebaasi kõik aktiivsed seansid, võimaldab lihtne päring SQL-i ajaloo ajalugu teatud ajaperioodi jooksul.


Oracle kirjutab ajaloolise SQL-teabe v $ active_session_history (sülearvuti andmebaasi salvestusega 15,4 "laiekraani pilt .shock poolt Fotolia.com)

Tähtsus

Oracle kogub automaatselt iga sekundi jooksul kõikidest andmebaasis töötavatest sessioonidest proovid ja salvestab andmed SQL-i ajaloost andmete sõnastiku vaates v $ active_session_history. See on ümmargune puhver, nii et kui see on täis, salvestab Oracle enne selle ülekirjutamist automaatselt selle teabe dba_hist_active_sess_history andmete sõnaraamatusse.

Funktsioon

Neid kahte vaadet küsides saate andmebaasis ajaperioodi jooksul sooritatud SQL-avalduste ajalugu. Näiteks tagastab järgmine päring 30. septembril 2010 kell 9.00–9.05 valitud SQL-avalduste esimese 4000 tähemärgi nimekirja:


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

kus näidisaeg on__kuupäeva ('20100930: 09: 00', 'yyyymmdd: hh24: mi') vahel

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

liit kõik

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

kus näidisaeg on_date ('20100930: 09: 00', 'yyyymmdd: hh24: mi') ja

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

Kaalutlused

Lisaks genereerib Oracle oma automaatse töökoormuse hoidlas SQL-avalduste tunnitasu statistikat. Näete, millised SQL-i avaldused vajavad teatud aja jooksul rohkem ressursse, küsides dba_hist_sqlstat ja dba_hist_snapshot andmete sõnastiku vaateid.

Mõjud

Näiteks, järgmine päring tagastab nimekirja SQL-avaldustest, mis on tehtud vahemikus 9:00 kuni 10:00, lisaks CPU-ajale, möödunud ajale, io_wait-ajale ja kettale juurdepääsu arvule. Väljund on tellitud CPU aja järgi.


valige a.sql_id, dbms_lob.substr (b.sql_text, 1000,1), cpu_time_delta, läbitud_aja_delta, iowait_delta, disk_reads_delta alates dba_hist_sqlstat a, dba_hist_sqltext b, kus a.sql_id = b.sql_id ja snap_id = (valige eraldi snap_id alates dba_hist_snapshot, kust_Char (begin_interval_time, 'yyyymmdd: hh24: mi') = '20100930: 09: 00' ja to_char (end_interval_time, 'yyyymmdd: hh24: mi') = '20100930: 10: 00' tellimuse järgi cpu_time

/