首頁 > 資料庫 > Oracle > 主體

oracle 查詢執行的sql

WBOY
發布: 2023-05-18 11:19:07
原創
6943 人瀏覽過

在資料庫管理中,Oracle是非常常用且重要的一種資料庫。在維運中,經常需要監控資料庫的執行情況,特別是執行的SQL語句,這可以大大幫助我們追蹤和最佳化SQL效能。在這篇文章中,我們將介紹如何查詢Oracle資料庫中正在執行的SQL語句。

查詢活動SQL語句的工具

Oracle提供了一些工具來幫助我們查詢活動的SQL語句。這些工具包括:

  1. Oracle Enterprise Manager(OEM)- 這是Oracle提供的視覺化工具,透過它我們可以方便地查看資料庫的執行情況,包括活動的SQL語句。
  2. Oracle SQL Developer - 這是一個備受歡迎的開發工具,它包括一個實用的監控和分析工具,能夠查詢正在執行的SQL語句和分析SQL效能。
  3. Oracle自帶的SQL腳本 - Oracle提供了一些查詢活動SQL語句的SQL腳本,這些腳本可以從Oracle網站下載到。

查詢正在執行的SQL語句的SQL腳本

在Oracle資料庫中,我們可以使用V$SESSION和V$SQL這兩個系統檢視來查詢活動的SQL語句。

V$SESSION視圖包含了目前所有活動的會話訊息,包括每個會話的SQL_ID,也就是每個會話正執行的SQL語句的識別碼。

V$SQL視圖包含了所有已編譯的SQL語句的信息,包括SQL_ID,SQL_TEXT等。

下面是一些用於查詢正在執行的SQL語句的SQL腳本:

  1. 查詢正在執行的SQL語句的SQL_ID

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 =##WHERE s.sql_id = t.sql_id##AND s.status = 'ACTIVE'
AND s.username <> 'SYS';

這個腳本將傳回所有活動會話所執行的SQL_ID及對應SQL文字。

    查詢正在執行的SQL語句的詳細資訊
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';

這個腳本將傳回活動會話所執行的SQL_ID及詳細的SQL訊息,包括使用者名、狀態、最近的運行時間、程式名稱、Action、SQL文字等。

    查詢被某個使用者執行的SQL語句
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';

這個腳本將傳回某個使用者正在執行的SQL語句及對應的詳細資訊。

    查詢最早執行的SQL語句
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 MIN(sql_id)
FROM v$session
WHERE username <> 'SYS'
AND STATUS = 'ACTIVE'
GROUP BY username

);

這個腳本將傳回最先執行的SQL語句,包括使用者名稱、狀態、最近的運行時間、程式名稱、Action、SQL文字等。
  1. 查詢最後執行的SQL語句


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

);

這個腳本將傳回最後執行的SQL語句,包括使用者名稱、狀態、最近的運行時間、程式名稱、Action、SQL文字等。

總結

在Oracle資料庫管理中,我們常常需要查詢正在執行的SQL語句。 Oracle提供了查詢活動的SQL語句的系統視圖,透過查詢這些視圖和使用SQL腳本,我們可以方便地查詢活動的SQL語句以及相關信息,以便對SQL效能進行最佳化和監控。同時,Oracle Enterprise Manager和Oracle SQL Developer也提供了查詢SQL語句的功能,可以依照個人需求選擇使用。 ###

以上是oracle 查詢執行的sql的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板