我有几个非常昂贵的查询,它们似乎占用了资源,这似乎使系统不堪重负。
是否有一个延迟函数可以调用来等待 SQL Server 2000 - 2008 中的处理器资源恢复正常?
我的最终目标是返回并使用存储过程来提高这些效率,但与此同时,我需要让这些尽快工作,因为我正在重写遗留代码。
最佳答案
你可以尝试这样的事情:
DECLARE @Busy int
,@Ticks int
SELECT @Busy=@@CPU_BUSY
,@Ticks=7777 --<you have to determine this value based on your machine
WAITFOR DELAY '00:00:10' --10 seconds
WHILE @@CPU_BUSY-@Ticks>@BUSY
BEGIN
--too busy, wait longer
@BUSY=@@CPU_BUSY
WAITFOR DELAY '00:00:10' --10 seconds
END
EXEC YourProcedureHere
要确定@Ticks值,只需编写一个循环,每10秒打印出@@CPU_BUSY值之间的差异。当系统处于低负载时,使用该值作为@Ticks。
关于sql-server - 使用查询或存储过程延迟 SQL Server 2000 查询直到处理器利用率低于 50%?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6948036/