首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

Oracle 如何查詢前端正在執行的 SQL 語句

     編輯:關於SqlServer

環境說明

作業系統:Windows 2000
資料庫版本:Oracle 8.1.6
安裝路徑:C:\ORANT

查詢方法

若要找出目前作用中 Session 正在執行的 SQL 文字,可透過 v$open_cursor 與 v$session 兩個動態效能視圖聯查:

SELECT user_name, sql_text
FROM v$open_cursor
WHERE sid IN (
    SELECT sid
    FROM v$session
    WHERE status = 'ACTIVE'
);

子查詢說明

SELECT sid, serial
FROM v$session
WHERE status = 'ACTIVE';

此子查詢會回傳所有狀態為 ACTIVE 的 Session ID,而非「不活動」的 Session(原文有誤,已修正)。

v$open_cursor 欄位結構

SQL> desc v$open_cursor
名稱            空?  類型
--------------- ---- ------------
SADDR           RAW(4)
SID             NUMBER
USER_NAME       VARCHAR2(30)
ADDRESS         RAW(4)
HASH_VALUE      NUMBER
SQL_TEXT        VARCHAR2(60)

提示: SQL_TEXT 僅顯示前 60 個字元,完整 SQL 可進一步結合 v$sql 或 v$sqltext 透過 HASH_VALUE 與 ADDRESS 查詢。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved