我正在测试一些连接,我查询了一些大表。我无法停止查询,我只是关闭了窗口。关闭后,我被问到would you like to close the query
,我说是的。然后我重新启动了SQL Server Management Studio。
问题是,根据我在互联网上看到的内容,即使我取消了查询,查询仍在运行。我无法重启服务器,我的权限有限。
我使用了sp_who2 'active'
然后找到了活动查询,并尝试使用:kill 84
(我的查询的spid)将其终止。它回来了:
Msg 6102,Level 14,State 1,Line 1
用户无权使用KILL语句。
然后我尝试了这个我也没有权限的查询:
SELECT TOP 20
qs.sql_handle,
qs.execution_count,
qs.total_worker_time AS Total_CPU,
total_CPU_inSeconds = --Converted from microseconds
qs.total_worker_time/1000000,
average_CPU_inSeconds = --Converted from microseconds
(qs.total_worker_time/1000000) / qs.execution_count,
qs.total_elapsed_time,
total_elapsed_time_inSeconds = --Converted from microseconds
qs.total_elapsed_time/1000000,
st.text,
qp.query_plan
FROM
sys.dm_exec_query_stats as qs
CROSS APPLY
sys.dm_exec_sql_text(qs.sql_handle) as st
CROSS APPLY
sys.dm_exec_query_plan (qs.plan_handle) as qp
ORDER BY
qs.total_worker_time desc
下一站是使用这两个有效的查询并返回以下内容:
select * from master..sysprocesses
where status = 'runnable' --comment this out
order by CPU
desc
select * from master..sysprocesses
order by CPU
desc
我现在可以利用我的限制做些什么?我想避免“让它运行”的选项,因为我不知道需要多长时间,我不想放慢性能。
任何建议都很受欢迎。谢谢(sql server 2012)
答案 0 :(得分:0)
从SSMS菜单中,选择查询/取消执行查询。或者,尝试Alt-Break的击键组合。
答案 1 :(得分:0)
为了加快执行速度,您可以按键盘上的 Alt + Break 取消长时间运行的查询。有关更多选项,请参阅此处:https://msdn.microsoft.com/en-us/library/aa833250(v=vs.90).aspx
答案 2 :(得分:0)
如果它仍在运行,让DBA为你杀死它