[SQL]資料庫正在執行的指令與資訊

更新 發佈閱讀 4 分鐘

平常在執行SP時,時常會遇到程式執行得特別慢,或已經跑到Time out了都還沒執行成功,SQL Server有提供各種監控的DMV(Dynamic Management View),可查詢資料庫中即時的運作資訊,也包括正在執行的完整指令。

raw-image
raw-image
   SELECT 
   r.scheduler_id AS '排程器識別碼'
  ,r.[status] AS '要求的狀態'
  ,r.session_id AS 'SPID'
  ,r.blocking_session_id AS 'BlkBy'
  ,SUBSTRING(LTRIM(q.[text]),r.statement_start_offset / 2+1,
   (CASE WHEN r.statement_end_offset = -1
THEN LEN(CONVERT(NVARCHAR(MAX), q.[text])) * 2
ELSE r.statement_end_offset
END - r.statement_start_offset) / 2
) AS '正在執行的 T-SQL 命令'
  ,r.cpu_time AS 'CPU Time(ms)'
  ,r.start_time AS '開始時間'
  ,r.total_elapsed_time AS '執行總時間'
  ,r.reads AS '讀取數'
  ,r.writes AS '寫入數'
  ,r.logical_reads AS '邏輯讀取數'
  ,q.[text] AS '完整的 T-SQL 指令碼'
  ,d.[name] AS '資料庫名稱'
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS q
LEFT JOIN sys.databases d
ON (r.database_id=d.database_id)
WHERE r.session_id > 50
AND r.session_id <> @@SPID
ORDER BY r.total_elapsed_time DESC

也可以使用sp_who2 這個系統預存程序,查看目前資料庫上的連線 Session、登入名稱、連線資料庫、裝置名稱,看是否有連線被咬住的狀況,不過Command欄位裡面只有一小句,看不到完整的部分。

raw-image

在對DMV還不熟的情況下(沒背起來也無法複製時),還是習慣用sp_who2看,也比較快不用還要打一段語法,也可以直接KILL掉,只是就是看不到現在正在跑落落長程式中的哪一段(´・ω・`)







留言
avatar-img
子皿子皿的沙龍
2會員
7內容數
子皿子皿的沙龍的其他內容
2024/03/26
Teradata SQL Assistant調整選項Submit only the selected query text, when highlighted
2024/03/26
Teradata SQL Assistant調整選項Submit only the selected query text, when highlighted
2024/03/26
.NET Framework 3.5安裝步驟
2024/03/26
.NET Framework 3.5安裝步驟
看更多
你可能也想看
Thumbnail
※ 為什麼需要 Subquery? 當⼀個任務需要多個 Query 完成任務,可以使⽤ Subquery 把多個 Query 合併成⼀個 Query。 當我們在進行SQL查詢時,每次查詢都需要在Web Server和資料庫之間來回傳遞資料。這個過程會產生網路延遲,特別是當兩者之間的物理距離較遠時
Thumbnail
※ 為什麼需要 Subquery? 當⼀個任務需要多個 Query 完成任務,可以使⽤ Subquery 把多個 Query 合併成⼀個 Query。 當我們在進行SQL查詢時,每次查詢都需要在Web Server和資料庫之間來回傳遞資料。這個過程會產生網路延遲,特別是當兩者之間的物理距離較遠時
Thumbnail
KSQL引擎, 串流形式的SQL? 聽了應該霧煞煞吧! 想像一下傳統的SQL, 是不是一個指令一個動作, 每發送一個指令之後就必須等到查詢/寫入…動作皆完成之後才回應, 然而在Streaming的應用上這顯然不太可行, 每分每秒都有資料流入的情境下, 資料的狀態都在變化, 假設我們一個指令一個動作,
Thumbnail
KSQL引擎, 串流形式的SQL? 聽了應該霧煞煞吧! 想像一下傳統的SQL, 是不是一個指令一個動作, 每發送一個指令之後就必須等到查詢/寫入…動作皆完成之後才回應, 然而在Streaming的應用上這顯然不太可行, 每分每秒都有資料流入的情境下, 資料的狀態都在變化, 假設我們一個指令一個動作,
Thumbnail
資料庫之備份工作大都是自動執行,但是執行結果是否成功,需要安排人員去檢查,有時疏忽忘記確認作業,致備份工作失敗仍不知道,等到有一天需要回復舊有資料的場合時,才發現找不到過去某段期間的備份資料,造成無法彌補之後果。   2.    改善: 2.1 設計一執行檔,功能為打開備
Thumbnail
資料庫之備份工作大都是自動執行,但是執行結果是否成功,需要安排人員去檢查,有時疏忽忘記確認作業,致備份工作失敗仍不知道,等到有一天需要回復舊有資料的場合時,才發現找不到過去某段期間的備份資料,造成無法彌補之後果。   2.    改善: 2.1 設計一執行檔,功能為打開備
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
Thumbnail
DB Version:MSSQL 2008 R2 開發環境OS:Window 7 64bit 1. 打開「SQL Server組態管理員」 2. 選SQL Native Client 10.0組態(32位元) 右鍵-> 新增別名 3. 輸入別名,伺服器(ip),通訊協定,通訊埠編號(如為1
Thumbnail
DB Version:MSSQL 2008 R2 開發環境OS:Window 7 64bit 1. 打開「SQL Server組態管理員」 2. 選SQL Native Client 10.0組態(32位元) 右鍵-> 新增別名 3. 輸入別名,伺服器(ip),通訊協定,通訊埠編號(如為1
Thumbnail
  當我們要使用執行緒的時候,就要引用System.Threading的類別庫,程式才可以使用唷!這篇內容先說明:建立與啟用執行緒、跨執行緒控制UI介面、等待或暫停時間執行緒、共享資源的部分。
Thumbnail
  當我們要使用執行緒的時候,就要引用System.Threading的類別庫,程式才可以使用唷!這篇內容先說明:建立與啟用執行緒、跨執行緒控制UI介面、等待或暫停時間執行緒、共享資源的部分。
Thumbnail
我自己是使用微軟的SQLIT軟體 這個軟體的操作上 沒有辦法直接用滑鼠點選或是拖拉的方式來看到你想看到的表格 都是要下指令的像是要看data.sqlite中的user這個table我就必須下 才能把table調閱出來看 那做為一個python三年工作經驗的工程師通常我不會直接在SQLIT軟體 裡面下
Thumbnail
我自己是使用微軟的SQLIT軟體 這個軟體的操作上 沒有辦法直接用滑鼠點選或是拖拉的方式來看到你想看到的表格 都是要下指令的像是要看data.sqlite中的user這個table我就必須下 才能把table調閱出來看 那做為一個python三年工作經驗的工程師通常我不會直接在SQLIT軟體 裡面下
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News