少し前に作成されたユーザー定義関数があり、次の時点から 1 週間以上「一時停止」ステータスとして表示されます。
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 が 370 億に達したときに SPID を終了させましたが、SPIDlogical_reads
は非常に頻繁に使用されており、もちろんすぐに元に戻り、同じパターンを開始しました。
私の質問は、実際には 2 つの部分に分かれています。
まず、頻繁に使用されるユーザー定義関数が一時停止状態にあるのを見るのは、これは正常な動作ですか?
第二に、ユーザー定義関数が何回呼び出されたかをどのように知ることができますか? (そして潜在的にそれを呼んだもの)
補足として、関数とその記述方法にはあまり満足していませんが、これが「完全に異常な」動作でない限り、現時点では書き直す時間がありません。