SQL Server:如何取消正在运行的查询?

时间:2015-12-17 16:22:09

标签: sql-server sql-server-2012

我正在测试一些连接,我查询了一些大表。我无法停止查询,我只是关闭了窗口。关闭后,我被问到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

返回: enter image description here

我现在可以利用我的限制做些什么?我想避免“让它运行”的选项,因为我不知道需要多长时间,我不想放慢性能。

任何建议都很受欢迎。谢谢(sql server 2012)

3 个答案:

答案 0 :(得分:0)

从SSMS菜单中,选择查询/取消执行查询。或者,尝试Alt-Break的击键组合。

答案 1 :(得分:0)

为了加快执行速度,您可以按键盘上的 Alt + Break 取消长时间运行的查询。有关更多选项,请参阅此处:https://msdn.microsoft.com/en-us/library/aa833250(v=vs.90).aspx

答案 2 :(得分:0)

如果它仍在运行,让DBA为你杀死它