Проблема с запросом SQL Server — Не удается получить доступ к строкам

#sql-server #sql-server-2008-r2 #ssms

#sql-server #sql-server-2008-r2 #ssms

Вопрос:

По какой-то странной причине при попытке получить доступ к последним 100 записям таблицы SQL Server MS останавливается и вращается, и для запроса результатов требуется вечность. Выбор первых 100 записей выполняется очень быстро (за 1 секунду). Есть идеи, что может происходить? Блокировка строки или что-то еще?

Это действительно кажется странным.

Спасибо.

Комментарии:

1. Я бы подумал, что блокировка строк. Вы можете легко подтвердить это, попробовав с помощью nolock подсказки или просмотрев sys.dm_os_waiting_tasks , пока запрос заблокирован.

Ответ №1:

Похоже, что другой pid имеет открытую транзакцию, удерживающую блокировки в таблице, которую вы пытаетесь прочитать.

В другом окне SSMS попробуйте запустить DBCC OPENTRAN (посмотрите параметры, если это система с большим объемом.

Редактировать

1 к комментарию @Martin …. добавьте nolock подсказку к вашему запросу для быстрого и грязного способа тестирования.

 SELECT ID
FROM MyTable WITH (nolock)