2011-01-07 2 views
2

У меня есть SQL-запрос, который довольно просто select * from tblOrders where customerID = 5000, но он никогда не возвращается. Я ждал 10 минут и сдался.Простой SQL-запрос никогда не возвращается

Самое странное, что другие запросы на одном и том же БД, но на другой таблице, отлично работают. Удаление предложения where не помогает, так что кажется, что таблица как-то не отвечает. Это около 30000 строк, так что это не самая большая таблица.

Я использую MS SQL SMS 2008 Express для экспресс-рассылки SQL Server 2008 на удаленном сервере.

+0

ли CUSTOMERID установить в качестве первичного ключа или индексироваться? Если нет, то он может проходить каждую запись в БД независимо от того, найдет она это или нет. –

+3

Есть ли у вас какие-либо открытые транзакции, которые могли бы блокировать таблицу? [DBCC OPENTRAN] (http://msdn.microsoft.com/en-us/library/ms182792.aspx) – codingbadger

+0

Является ли таблица индексированной по идентификатору клиента? И вы уверены, что на самом деле это таблица, а не точка зрения? Кроме того, что произойдет, если вы «выберете customerID от tblOrders, где customerID = 5000». И, наконец, номер клиентаID? – Ronnis

ответ

3

Похоже, ваша таблица заблокирована

выполнить этот запрос, чтобы увидеть, что блокировки удерживаются против него.

USE master; 
GO 
EXEC sp_lock; 
GO 

но блокировка таблицы целая Mindfield своих собственных здесь некоторая информация в системе sp_lock ХП http://msdn.microsoft.com/en-us/library/ms187749.aspx

когда вы найдете замок, вы можете убить его

KILL { session ID | UOW } [ WITH STATUSONLY ] 

http://msdn.microsoft.com/en-us/library/ms173730.aspx

5

Попробуйте обходить любые замки на столе -

select * from tblOrders(nolock) where customerID = 5000 
0

Я согласен с остальными, что это, скорее всего, проблема блокировки. По умолчанию доступ на запись к таблице по-прежнему блокирует доступ для чтения (только).

С SQL Server 2005 это можно устранить, используя «управление версиями строк». Чтобы включить это, вам необходимо изменить настройки базы данных.

Смотрите руководство для более подробного объяснения:

http://msdn.microsoft.com/en-us/library/ms345124%28SQL.90%29.aspx

Смежные вопросы