SSMS查询执行时间限制频繁恢复为15秒的彻底解决方法求助
彻底解决SSMS查询执行时间限制反复恢复的方案
太懂这种被恶意改了设置还反复跳回来的糟心感了!别慌,咱们从几个可能的根源入手,一步步把这个顽固的15秒限制彻底干掉:
1. 锁定SSMS用户配置文件,防止被篡改
恶作剧的人大概率是动了你的SSMS个人配置,咱们直接从配置文件下手:
- 先关掉所有SSMS窗口,找到你的SSMS用户配置文件夹:
- SSMS 18及以上版本路径:
C:\Users\[你的用户名]\AppData\Roaming\Microsoft\SQL Server Management Studio\[具体版本号] - 旧版本路径逻辑类似,找到名为
UserSettings.xml的文件,用记事本打开 - 搜索关键词
QueryExecutionTimeout,把对应的数值从15改成你需要的(比如输入0代表无查询超时限制),保存文件 - 右键这个文件,选择「属性」,勾选「只读」,这样就没人能随便改写这个配置了
- SSMS 18及以上版本路径:
- 如果改了只读还是被恢复,那大概率是注册表被锁了:
- 按Win+R输入
regedit打开注册表编辑器 - 定位到路径:
HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\[版本号]\Tools\Shell\Query Execution - 找到
ExecutionTimeout项,修改数值为你需要的,然后右键该项选「权限」,把你的用户权限设置为仅读取,禁止写入权限,彻底锁死这个设置
- 按Win+R输入
2. 排查服务器端的查询调控器限制
有时候这个限制不是来自SSMS客户端,而是SQL Server服务器端的全局设置:
- 打开SSMS连接到目标实例,执行以下SQL命令检查:
sp_configure 'show advanced options', 1; RECONFIGURE; sp_configure 'query governor cost limit'; - 如果返回的
run_value是对应15秒的成本值(通常15秒对应的成本值大概是15左右),说明是服务器端限制了,执行下面的命令改成无限制(需要管理员权限):
要是没有管理员权限,直接找公司DBA帮忙调整就行。sp_configure 'query governor cost limit', 0; RECONFIGURE;
3. 检查SSMS快捷方式的启动参数
别忽略这个小细节!恶作剧的人可能修改了SSMS的快捷方式,强制加载恶意配置:
- 右键桌面/任务栏的SSMS快捷方式,选择「属性」,查看「目标」输入框的末尾,有没有类似
/Settings "C:\xxx\恶意配置文件.xml"的额外参数,如果有,直接删掉多余部分,点击确定保存。
4. 彻底重置SSMS所有配置
如果上面的方法都不管用,直接把SSMS打回初始状态:
- 关闭所有SSMS窗口,按Win+R输入
ssms.exe /ResetSettings,回车启动SSMS - 按照提示完成配置重置,之后再手动设置你需要的查询超时时间,然后回到第一步把配置文件设为只读,防止再次被篡改
如果是公司办公环境,还有可能是组策略强制推送了SSMS配置,这种情况直接找IT部门帮忙调整组策略规则就好啦!
内容的提问来源于stack exchange,提问作者Scott Clyburn
相关产品推荐
相关产品推荐

