2010-09-28 4 views
0

Я заметил, что при просмотре результатов запроса в сетке в SQL Server Management Studio он часто вызывает блокировку ресурсов на сервере, предотвращая запуск других запросов. Почему это происходит, когда я только открываю таблицу для просмотра, а не для редактирования? Отключение окна запроса с сервера освобождает ресурсы. Я предполагаю, что этого не произойдет, когда я верну результаты в виде текста, но я еще не тестировал это.Блокировка ресурсов в SQL Server Management Studio

Какова наилучшая практика использования окон запросов в SSMS?

ответ

0

Какой тип «блокировки ресурсов на сервере»? Выполнение запроса SELECT будет содержать блокировки чтения (это нормальное поведение).

Прочтите блокировки, чтобы предотвратить появление других простых прочтений (SELECT).

Есть ли у вас другие транзакции, чем уровень изоляции SERIALIZABLE?

+0

Да, это только запрос SELECT, поэтому, я думаю, мы говорим о блокировках чтения, которые предотвращают другие операции SELECT. Если операция чтения не является частью транзакции, какова точка блокировки возвращенных записей? Было бы разумнее немедленно выпустить записи. – Billious

+0

ОК, я думаю, что я просто идиот себя. Я забыл, что то, что я тестировал, было не простой процедурой SELECT, а то, что она фактически создала, приводит к публичной временной таблице. Как бы то ни было, хотя окно запроса вернуло результаты, транзакция фактически не удалась и блокировала временную таблицу, тем самым предотвращая запуск той же процедуры в другом месте. Почему публичная временная таблица? Часть процедуры динамически строит и исполняет строку SQL, которая генерирует таблицу, поэтому обычная временная таблица не будет работать. Спасибо за вашу помощь. Я приму свой ответ за ваши проблемы! – Billious

+0

@Billious: проблем нет. Это легко сделать! Я уверен, что я это делал много раз! ;) –

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