![SQL Tutorial deutsch - Grundlagen von SQL in 2 Stunden](https://i.ytimg.com/vi/P-iHxxj7heE/hqdefault.jpg)
Inhalt
Da Oracle Beispiele sammelt und alle aktiven Sitzungen in die Datenbank schreibt, können Sie mit einer einfachen Abfrage den SQL-Anweisungsverlauf für einen bestimmten Zeitraum abrufen.
Wichtigkeit
Oracle sammelt automatisch Proben aller Sitzungen, die jede Sekunde in der Datenbank ausgeführt werden, und speichert Informationen aus der SQL-Historie in der Datenwörterbuchansicht v $ active_session_history. Hierbei handelt es sich um einen Umlaufpuffer. Wenn der Speicher voll ist, speichert Oracle seine Informationen automatisch in der Datenwörterbuchansicht dba_hist_active_sess_history, bevor er diese überschreibt.
Funktion
Sie können eine Historie der SQL-Anweisungen abrufen, die über einen bestimmten Zeitraum in der Datenbank ausgeführt werden, indem Sie diese beiden Ansichten abfragen. Die folgende Abfrage gibt beispielsweise die Liste der ersten 4000 Zeichen von SQL-Anweisungen zurück, die am 30. September 2010 zwischen 9:00 Uhr und 9:05 Uhr ausgeführt werden:
Wählen Sie a.sql_id, dbms_lob.substr (b.sql_text, 4000,1) aus dba_hist_active_sess_history a, dba_hist_sqltext b aus
wobei sample_time zwischen to_date ('20100930: 09: 00', 'yyyymmdd: hh24: mi')
und to_date ('20100930: 09: 01', 'yyyymmdd: hh24: mi') und b.sql_id = a.sql_id
Gewerkschaft alle
Wählen Sie a.sql_id, dbms_lob.substr (b.sql_text, 4000,1) aus v $ active_session_history a, v $ sqlarea b
wobei sample_time zwischen to_date ('20100930: 09: 00', 'yyyymmdd: hh24: mi') und
to_date ('20100930: 09: 01', 'yyyymmdd: hh24: mi') und b.sql_id = a.sql_id
Überlegungen
Darüber hinaus generiert Oracle stündliche Ausführungsstatistiken für SQL-Anweisungen in seinem Automatic Workload Repository. Sie können feststellen, welche SQL-Anweisungen zu einem bestimmten Zeitpunkt mehr Ressourcen benötigen, indem Sie die Datenwörterbuch-Ansichten dba_hist_sqlstat und dba_hist_snapshot abfragen.
Effekte
Die folgende Abfrage gibt beispielsweise eine Liste von SQL-Anweisungen zurück, die zwischen 9:00 Uhr und 10:00 Uhr ausgeführt werden, zusätzlich zu CPU-Zeit, verstrichener Zeit, io_wait-Zeit und Anzahl der Festplattenzugriffe. Die Ausgabe ist nach CPU-Zeit sortiert.
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, (,), aus,,,,,,,,,,, von, aus, von, aus, von, aus, Dba_hist_sqlstat a, dba_hist_sqltext a, dba_hist_sqltext a, dba_hist_sqlbb (begin_interval_time, 'yyyymmdd: hh24: mi') = '20100930: 09: 00' und to_char (end_interval_time, 'yyyymmdd: hh24: mi') = '20100930: 10: 00', um cpu_time
/