Heim > Datenbank > Oracle > Oracle-Abfrageausführung SQL

Oracle-Abfrageausführung SQL

WBOY
Freigeben: 2023-05-18 11:19:07
Original
6966 Leute haben es durchsucht

In der Datenbankverwaltung ist Oracle eine sehr häufig verwendete und wichtige Datenbank. Bei Betrieb und Wartung ist es häufig erforderlich, die Ausführung der Datenbank, insbesondere die ausgeführten SQL-Anweisungen, zu überwachen, was uns sehr dabei helfen kann, die SQL-Leistung zu verfolgen und zu optimieren. In diesem Artikel stellen wir vor, wie Sie die SQL-Anweisungen abfragen, die in der Oracle-Datenbank ausgeführt werden.

Tools zum Abfragen aktiver SQL-Anweisungen

Oracle bietet einige Tools, die uns beim Abfragen aktiver SQL-Anweisungen helfen. Zu diesen Tools gehören:

  1. Oracle Enterprise Manager (OEM) – Dies ist ein von Oracle bereitgestelltes Visualisierungstool, mit dem wir die Ausführung der Datenbank, einschließlich aktiver SQL-Anweisungen, einfach anzeigen können.
  2. Oracle SQL Developer – Dies ist ein beliebtes Entwicklungstool, das ein praktisches Überwachungs- und Analysetool enthält, das ausgeführte SQL-Anweisungen abfragen und die SQL-Leistung analysieren kann.
  3. Oracles eigene SQL-Skripte – Oracle stellt einige SQL-Skripte zum Abfragen aktiver SQL-Anweisungen bereit. Diese Skripte können von der Oracle-Website heruntergeladen werden.

SQL-Skript zur Abfrage der ausgeführten SQL-Anweisung

In der Oracle-Datenbank können wir die beiden Systemansichten V$SESSION und V$SQL verwenden, um die aktiven SQL-Anweisungen abzufragen.

Die V$SESSION-Ansicht enthält alle aktuell aktiven Sitzungsinformationen, einschließlich der SQL_ID jeder Sitzung, die die Kennung der SQL-Anweisung ist, die von jeder Sitzung ausgeführt wird.

V$SQL-Ansicht enthält Informationen zu allen kompilierten SQL-Anweisungen, einschließlich SQL_ID, SQL_TEXT usw.

Hier sind einige SQL-Skripte zum Abfragen der ausgeführten SQL-Anweisung:

  1. Fragen Sie die SQL_ID der ausgeführten SQL-Anweisung ab

SELECT s.sid, s.serial#, s.sql_id, s.sql_child_number, t . sql_text
FROM v$session s, v$sqltext_with_newlines t
WHERE s.sql_id = t.sql_id
AND s.status = 'ACTIVE'
AND s.username <> 'SYS';

Dieses Skript gibt SQL_ID zurück und entsprechender SQL-Text, der von allen aktiven Sitzungen ausgeführt wird.

  1. Fragen Sie die Details der ausgeführten SQL-Anweisung ab

SELECT s.sid, s.serial#, s.username, s.status, t.sql_id, t.sql_text,
s.last_call_et, s.logon_time, s.program, s.module, s.action
FROM v$session s, v$sqltext_with_newlines t
WHERE s.sql_id = t.sql_id
AND s.status = 'ACTIVE'
AND s.username <> SYS';

Dieses Skript gibt die von der aktiven Sitzung ausgeführte SQL_ID und detaillierte SQL-Informationen zurück, einschließlich Benutzername, Status, letzte Laufzeit, Programmname, Aktion, SQL-Text usw.

  1. Fragen Sie die von einem Benutzer ausgeführten SQL-Anweisungen ab.

SELECT s.sid, s.serial#, s.username, s.status, t.sql_id, t.sql_text,
s.last_call_et, s.logon_time, s .program, s.module, s.action
FROM v$session s, v$sqltext_with_newlines t
WHERE s.sql_id = t.sql_id
AND s.status = 'ACTIVE'
AND s.username = 'your_username'

Dieses Skript gibt die von einem Benutzer ausgeführte SQL-Anweisung und die entsprechenden Details zurück.

  1. Fragen Sie die erste ausgeführte SQL-Anweisung ab

SELECT s.sid, s.serial#, s.username, s.status, t.sql_id, t.sql_text,
s.last_call_et, s.logon_time, s.programm , s.module, s.action
FROM v$session s, v$sqltext_with_newlines t
WHERE s.sql_id = t.sql_id
AND s.STATUS = 'ACTIVE'
AND s.username <> 'SYS'
AND s.sql_id IN (
SELECT MIN(sql_id)
FROM v$session
WHERE username <> 'SYS'
AND STATUS = 'ACTIVE'
GROUP BY username
);

Dieses Skript gibt den ersten zurück Die ausgeführte SQL-Anweisung umfasst Benutzernamen, Status, aktuelle Laufzeit, Programmnamen, Aktion, SQL-Text usw.

  1. Fragen Sie die zuletzt ausgeführte SQL-Anweisung ab

SELECT s.sid, s.serial#, s.username, s.status, t.sql_id, t.sql_text,
s.last_call_et, s.logon_time, s.program , s.module, s.action
FROM v$session s, v$sqltext_with_newlines t
WHERE s.sql_id = t.sql_id
AND s.STATUS = 'ACTIVE'
AND s.username <> 'SYS'
AND s.sql_id IN (
SELECT MAX(sql_id)
FROM v$session
WHERE username <> 'SYS'
AND STATUS = 'ACTIVE'
GROUP BY username
);

Dieses Skript gibt das zuletzt ausgeführte zurück SQL-Anweisungen, einschließlich Benutzername, Status, letzte Laufzeit, Programmname, Aktion, SQL-Text usw.

Zusammenfassung

Bei der Oracle-Datenbankverwaltung müssen wir häufig die ausgeführten SQL-Anweisungen abfragen. Oracle stellt Systemansichten zum Abfragen aktiver SQL-Anweisungen bereit. Durch Abfragen dieser Ansichten und Verwendung von SQL-Skripts können wir aktive SQL-Anweisungen und zugehörige Informationen einfach abfragen, um die SQL-Leistung zu optimieren und zu überwachen. Gleichzeitig bieten Oracle Enterprise Manager und Oracle SQL Developer auch die Funktion der Abfrage von SQL-Anweisungen, die je nach persönlichem Bedarf ausgewählt und verwendet werden können.

Das obige ist der detaillierte Inhalt vonOracle-Abfrageausführung SQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage