LONG_RUNNING_SQL 管理視圖
LONG_RUNNING_SQL 管理視圖會傳回在目前連接的資料庫中執行的 SQL 陳述式。 此視圖可用來識別資料庫中長時間執行的 SQL 陳述式。
重要事項: LONG_RUNNING_SQL 管理視圖已淘汰,且已取代為 MON_CURRENT_SQL-擷取所有成員上所有活動的重要度量。
綱目是 SYSIBMADM。
授權
需要下列其中一項授權:
- LONG_RUNNING_SQL 管理視圖的 SELECT 專用權
- LONG_RUNNING_SQL 管理視圖的 CONTROL 專用權
- DATAACCESS 權限
- DBADM 權限
- SQLADM 權限
- ACCESSCTRL 權限
- SECADM 權限
此外,若要存取 Snapshot 監視器資料,還需要下列其中一項權限:
- SYSMON
- SYSCTRL
- SYSMAINT
- SYSADM
預設 PUBLIC 專用權
在非限制性資料庫中,當自動建立視圖時,會將 SELECT 專用權授與 PUBLIC。
範例
擷取目前所連接資料庫中長時間執行 SQL 陳述式的報告。
SELECT SUBSTR(STMT_TEXT, 1, 50) AS STMT_TEXT, AGENT_ID,
ELAPSED_TIME_MIN, APPL_STATUS, DBPARTITIONNUM
FROM SYSIBMADM.LONG_RUNNING_SQL ORDER BY DBPARTITIONNUM
下列是此查詢的輸出範例。
STMT_TEXT AGENT_ID ...
-----------------------------...- --------...- ...
select * from dbuser.employee 228 ...
select * from dbuser.employee 228 ...
select * from dbuser.employee 228 ...
...
3 record(s) selected. ...
此查詢的輸出 (續)。
... ELAPSED_TIME_MIN APPL_STATUS DBPARTITIONNUM
... ---------------- -----------...- --------------
... 2 UOWWAIT 0
... 0 CONNECTED 1
... 0 CONNECTED 2
使用注意事項
此視圖可用來識別資料庫中長時間執行的 SQL 陳述式。 您可以查看目前執行中的查詢,以查看哪些陳述式執行時間最長,以及查詢的現行狀態。 可以使用代理程式 ID 作為唯一 ID ,對包含 SQL 陳述式的應用程式進行進一步調查。 如果執行很長時間並等待鎖定,您可能想要使用 LOCKWAITS 或 LOCKS_HELD 管理視圖來深入挖掘。 如果「等待使用者」,這表示資料庫伺服器未執行任何動作,而是正在等待應用程式執行某些動作 (例如發出下一個提取或提交下一個 SQL 陳述式)。
傳回的資訊
直欄名稱 | 資料類型 | 說明或對應的監視器元素 |
---|---|---|
SNAPSHOT_TIMESTAMP | TIMESTAMP | 產生報告的時間。 |
ELAPSED_TIME_MIN | INTEGER | 陳述式的經歷時間 (分鐘)。 |
AGENT_ID | BIGINT | agent_id-應用程式控點 (代理程式 ID) |
APPL_NAME | VARCHAR (256) | appl_name-應用程式名稱 |
APPL_STATUS | VARCHAR (22) | appl_status-應用程式狀態 。 此介面會根據 sqlmon.h中的定義傳回文字 ID ,並且是下列其中一項:
|
鑑別 ID | VARCHAR(128) | auth_id-授權 ID |
INBOUND_COMM_ADDRESS | VARCHAR(32) | inbound_comm_address-入埠通訊位址 |
STMT_TEXT | CLOB (16 M) | stmt_text-SQL 陳述式文字 |
DBPARTITIONNUM | SMALLINT | dbpartitionnum-資料庫分割區號碼監視器元素 |
MEMBER | SMALLINT | member-資料庫成員監視器元素 |