Sql server 如何停止在SQL Server上运行cpu/耗时的查询!
假设我的sql server上运行了数百个查询。现在我想通过自动停止这些查询来保护我的服务器不受错误查询的影响。如果不使用profiler和KILL命令,如何在SQLServer2005中实现此行为 谢谢,Sql server 如何停止在SQL Server上运行cpu/耗时的查询!,sql-server,Sql Server,假设我的sql server上运行了数百个查询。现在我想通过自动停止这些查询来保护我的服务器不受错误查询的影响。如果不使用profiler和KILL命令,如何在SQLServer2005中实现此行为 谢谢, Salman Shehbaz.SQLServer具有查询执行超时,如果查询在给定时间内未分配内存,则会根据执行计划中的估计成本超时查询(默认情况下,它等待的时间是估计时间的25倍)。如果查询经常超时,则需要优化,或者需要更多内存 如果您查看的是已经运行的查询,它们花费的时间比预期的要长,那么
Salman Shehbaz.SQLServer具有查询执行超时,如果查询在给定时间内未分配内存,则会根据执行计划中的估计成本超时查询(默认情况下,它等待的时间是估计时间的25倍)。如果查询经常超时,则需要优化,或者需要更多内存 如果您查看的是已经运行的查询,它们花费的时间比预期的要长,那么唯一真正的方法就是使用探查器并确定问题所在。如果查询在生产系统中花费的时间太长,那么终止查询不是一个好的做法
这可能会提供SQLServer has query execution timeout,如果查询在给定时间内没有分配内存,它会根据执行计划中的估计成本(它等待的时间是默认情况下估计的25倍)超时。如果查询经常超时,则需要优化,或者需要更多内存 如果您查看的是已经运行的查询,它们花费的时间比预期的要长,那么唯一真正的方法就是使用探查器并确定问题所在。如果查询在生产系统中花费的时间太长,那么终止查询不是一个好的做法
这可能会提供您可以在此处推出自己的解决方案,或升级到SQL 2008
您可以在此处推出自己的解决方案,或升级到SQL 2008
基于以下内容创建新的存储过程:
sp_lock
sp_who2
beta_lockinfo (http://www.sommarskog.se/sqlutil/beta_lockinfo.html)
只需复制其中一个存储过程并对其进行编辑,以找到“错误查询”,然后在spid上发出KILL命令。创建每N分钟运行一次的作业并运行此存储过程
警告,您的工作可能会发现自己是一个“错误的查询”,并自杀。这种方法会浪费系统资源,但如果您真的想这样做,请尝试一下这种方法 基于以下内容创建一个新的存储过程:
sp_lock
sp_who2
beta_lockinfo (http://www.sommarskog.se/sqlutil/beta_lockinfo.html)
只需复制其中一个存储过程并对其进行编辑,以找到“错误查询”,然后在spid上发出KILL命令。创建每N分钟运行一次的作业并运行此存储过程
警告,您的工作可能会发现自己是一个“错误的查询”,并自杀。这种方法会浪费系统资源,但如果您真的想这样做,请尝试一下这种方法