Oracle SQL-Verlauf

Autor: Roger Morrison
Erstelldatum: 20 September 2021
Aktualisierungsdatum: 1 Juli 2024
Anonim
SQL Tutorial deutsch -  Grundlagen von SQL in 2 Stunden
Video: SQL Tutorial deutsch - Grundlagen von SQL in 2 Stunden

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.


Oracle schreibt historische SQL-Informationen in v $ active_session_history (Laptop mit Datenbankeintrag auf 15,4 "Breitbild von .shock von Fotolia.com)

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

/