2
我們有一個用戶定義的函數創建前段時間其中顯示了從爲「暫停」狀態了一個多星期:用戶定義的功能是「暫停」狀態是否正常?
USE master
SELECT *
FROM sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text(sql_handle)
ORDER BY start_time
以上從查詢該行有「狀態」爲「暫停」,並繼續遞增每個值:
cpu_time
210262625
total_elapsed_time
623982642
reads
741700958
reads
19754
logical_reads
2938802909
我以前殺了SPID當它達到了37十億logical_reads
,但它的使用非常普遍,當然顯示右後衛,並開始這個模式。
我的問題確實分爲兩部分。
首先,這是一個常用的行爲,大量使用的用戶定義的函數看到它處於暫停狀態?
其次,我該如何判斷用戶定義的函數被調用了多少次? (並且簡單地稱之爲)
作爲一個方面說明,我不是很滿意這個函數和它是如何寫的,但是除非這是「完全不正常」的行爲,我現在沒有時間重寫它。
這是一個有用的答案 - 原來的功能從用戶活動調用,但也從一個SQL代理作業 - 以不同的方式,代理作業掛起,仍然需要深入探討爲什麼,但它爲我的「忍者sql查詢殺手軍刀攻擊」的目標(現在說5倍真快) –