2013-10-07 2 views
2

Прошу прощения за вопрос nOOb, но у меня очень простой запрос SQL Server, который ВЫБОР данных из таблицы. Стол около 18 строк больших по размеру и запрос, как показано ниже,SQL Server Query не завершает выполнение

SELECT * ОТ SavedJobs

И это никогда не заканчивает выполнение на STUDIO SQL Server Management

но при запуске с помощью WITH (NOLOCK) он выкладывает результат, например,

SELECT * ОТ 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

Крис - Спасибо за ответ. Я запускал sp_who2, и он показывает кучу результатов, когда люди обращаются к моей базе данных. Как убить их, а также до того, как их убить, как я могу убедиться, что они обращаются к той же таблице, что и моя – user1345260

+1

_ «люди обращаются к моей базе данных. Как я их убиваю» _ лучше не на всех;) –

+0

Lol .. That был хорошим Тимом :) – user1345260