我们前段时间创建了一个用户定义的函数,该函数显示为“暂停”状态超过一周:
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 亿时杀死了它,logical_reads
但它经常被使用,当然也显示出来并开始了同样的模式。
我的问题实际上分为两部分。
首先,对于大量使用的用户定义函数来说,这是正常的行为吗?看到它处于挂起状态吗?
其次,我如何知道用户定义的函数被调用了多少次?(并且可能是什么叫它)
附带说明一下,我对该函数及其编写方式并不十分满意,但是除非这是“完全不正常”的行为,否则我目前没有时间重写它。