2013-10-07 176 views
2

我为nOOb问题表示歉意,但我有一个非常简单的SQL Server查询,它从表中选择数据。该表是约18行的规模大,查询是如下,SQL Server查询未完成执行

SELECT * FROM SavedJobs

而这从来没有在SQL Server Management Studio中执行完毕

,但是当使用运行(NOLOCK)它吐出的结果,例如,

SELECT * FROM WITH SavedJobs(NOLOCK)

我相信我的数据库上的东西已经锁定了SavedJobs表,我想弄清楚并杀死那个锁。有人能指导我解决这个问题吗?从sp_lock

输出:

spid  dbid  ObjId  IndId  Type  Resource    Mode Status 
51   4    0    0    DB               S    GRANT 
52   7    0    0    DB               S    GRANT 
53   7    0    0    DB               S    GRANT 
54   4    0    0    DB               S    GRANT 
55   7    0    0    DB               S    GRANT 
56   7    0    0    DB               S    GRANT 
57   7    0    0    DB               S    GRANT 
58   7    0    0    DB               S    GRANT 
58   1    1131151075   0    TAB              IS   GRANT 
62   4    0    0    DB               S    GRANT 
63   4    0    0    DB               S    GRANT 
64   7    0    0    DB               S    GRANT 
66   9    0    0    DB               S    GRANT 
67   9    0    0    DB               S    GRANT 
68   7    0    0    DB               S    GRANT 
68   7    608721221   1    KEY   (ff6a151f422b)         X    GRANT 
68   7    608721221   1    PAG  1:246          IX   GRANT 
68   7    608721221   2    PAG  1:250          IX   GRANT 
68   7    608721221   0    TAB              IX   GRANT 
68   7    32719169    0    TAB              IX   GRANT 
68   7    608721221   2    KEY   (937ccdaf17f5)         X    GRANT 
69   7    0    0    DB               S    GRANT 
70   7    0    0    DB               S    GRANT 
71   9    0    0    DB               S    GRANT 
72   7    0    0    DB               S    GRANT 
74   9    0    0    DB               S    GRANT 
75   7    0    0    DB               S    GRANT 
76   9    0    0    DB               S    GRANT 
78   9    0    0    DB               S    GRANT 
79   9    0    0    DB               S    GRANT 
85   9    0    0    DB               S    GRANT 
86   7    0    0    DB               S    GRANT 
89   7    608721221   1    PAG  1:246          IS   GRANT 
89   7    0    0    DB               S    GRANT 
89   7    1243151474   0    TAB              IS   GRANT 
89   7    699149536   0    TAB              IS   GRANT 
89   7    768721791   0    TAB              IS   GRANT 
89   7    608721221   0    TAB              IS   GRANT 
89   7    608721221   1    KEY   (ff6a151f422b)         S    WAIT 
89   7    32719169    0    TAB              IS   GRANT 
96   9    0    0    DB               S    GRANT 
98   7    0    0    DB               S    GRANT 
100   7    0    0    DB               S    GRANT 
101   9    0    0    DB               S    GRANT 
102   9    0    0    DB               S    GRANT 
103   9    0    0    DB               S    GRANT 
105   7    0    0    DB               S    GRANT 
106   7    0    0    DB               S    GRANT 
+1

执行'sp_lock'并显示输出结果。 – RBarryYoung

+0

Barry - 我用输出 – user1345260

+1

更新了我的问题确定,执行'DBCC INPUTBUFFER(68)'并向我们显示EventInfo列的内容。这是会话68正在执行的命令,即阻止您的命令。 – RBarryYoung

回答

2

可以在另一个会话中执行 sp_who2 显示该会话阻塞另一个之一。 你可以使用 kill 杀死一个进程(不仅锁!)

+1

Chris - 谢谢你的回答。我运行了sp_who2,它显示了一些人在访问我的数据库的结果。我怎么杀他们,也杀他们之前,我怎么能确保他们正在访问我的同一张桌子 – user1345260

+1

_“人们正在访问我的数据库,我怎么杀他们”_最好不是; –

+0

大声笑..是一个很好的蒂姆:) – user1345260