Sql 如果查询运行时间过长,是否将其编程为取消?
我正在尝试优化一个查询,并希望在服务器上没有太多流量的情况下,在下班后测试几个部分。我将对各个查询进行基准测试,并将结果写入表中,以便在早上进行检查,即Sql 如果查询运行时间过长,是否将其编程为取消?,sql,sql-server,tsql,sql-tuning,Sql,Sql Server,Tsql,Sql Tuning,我正在尝试优化一个查询,并希望在服务器上没有太多流量的情况下,在下班后测试几个部分。我将对各个查询进行基准测试,并将结果写入表中,以便在早上进行检查,即 waitfor time '22:00'; declare @timer datetime declare @time float declare @query nvarchar(max) set @query = N'select ...' set @timer = getdate() exec sp_executesql @query
waitfor time '22:00';
declare @timer datetime
declare @time float
declare @query nvarchar(max)
set @query = N'select ...'
set @timer = getdate()
exec sp_executesql @query
set @time = datediff(ss,@timer,getdate())
问题是,我将无法手动监视查询,而且我不想冒让某些东西运行数小时的风险。有没有办法,使用T-SQL设置一个超时,以便该查询在10分钟后取消
SE上的其他问题表明,现在有办法做到这一点,或者可以为我无权创建的计划作业执行此操作,但我正在寻找任何替代或创造性的解决方案。可能重复类似的内容,请查看@LOCK\u TIMEOUT。如果对你有用的话。服务器端可能会出现类似的情况,但肯定没有什么可以做到这一点。即使在SSMS中,超时也是客户端的事情。为什么不制作数据库的dev副本以供测试?