【发布时间】:2013-07-17 13:53:00
【问题描述】:
我们在一段时间前创建了一个用户定义的函数,该函数在一周多的时间里显示为“暂停”状态:
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 时杀死了它,但它经常被使用,当然会立即显示并启动相同的模式。
我的问题实际上分为两部分。
首先,对于一个频繁使用的用户定义函数来说,看到它处于挂起状态,这是正常的行为吗?
其次,如何知道用户定义的函数被调用了多少次? (以及可能的名称)
附带说明,我对函数及其编写方式并不十分满意,但除非这是“完全不正常”的行为,否则我目前没有时间重写它。
【问题讨论】:
标签: sql-server sql-server-2008 user-defined-functions