У меня проблемы с пониманием того, что блокирует мою базу данных SQL Server.Я обращаюсь к данным из базы данных SQL Server через Entity Framework.Во время работы этого веб-приложения я также проверяю данные с помощью SQL Server Management Studio.
Видимо, когда я пытаюсь прочитать разные таблицы, щелкнув правой кнопкой мыши "Выберите TOP n строк", я получаю сообщение
Не удалось получить данные - превышен период ожидания блокировки Ошибка 1222).
Этого не происходит, когда я читаю данные вручную с помощью оператора Select * from ...
или, по крайней мере, я этого еще не заметил.Есть ли разница между этими двумя подходами?
И что более важно, как я могу выяснить, что блокирует мою базу данных?Я пытался проводить исследования, но все еще не совсем понимал, что делать.Я попытался использовать
DBCC opentran and than
exec sp_who2 SPID
exec sp_lock SPID
, который говорит мне, что есть активная транзакция из Entity Framework, но не какая именно.Я использую несколько транзакций в моем приложении.Но это, по моему мнению, на других столах, чем я пытаюсь получить доступ через Management Studio.Эти транзакции блокируют всю базу данных?
Цените любую помощь.