Таблица SQL Server блокируется в длинном запросе - Решение: NoLock?

отчет в моем приложении выполняет запрос, который требует от 5 до 15 секунд (ограничено числом строк, которые будут возвращены). Запрос имеет 8 соединений почти со всеми основными таблицами моего приложения (клиенты, продажи, единицы и т. Д.).

Небольшой инструмент показывает мне, что в это время все эти 8 таблиц заблокированы с помощью общей блокировки таблиц. Это означает, что в это время операция обновления не будет выполняться.

Решение от друга состоит в том, чтобы иметь каждое соединение в запросе, что не является обязательным, чтобы иметь 100% правильные данные (грязное чтение), с NoLock, так что только 1 из этих 8 таблиц будет заблокирована полностью. Это хорошее решение? Для отчета, в котором 99% данных поступили из одной таблицы, разблокируйте менее первичные таблицы?

Ответы на вопрос(3)

Ваш ответ на вопрос