Для одного пользователя: отключите блокировку для Microsoft SQL Server - PullRequest
1 голос
/ 08 декабря 2008

Я запускаю скрипт обновления для базы данных, размещенной на Microsoft SQL Server. Это займет некоторое время. По разным причинам некоторые запросы не стоят дальнейшей оптимизации.

Я единственный, кто пользуется этой базой данных: есть ли способ заставить SQL Server не беспокоиться о транзакциях / блокировке?

Например, в DELETE ... WHERE, нужно ли SQL получать эксклюзивные блокировки для строк, которые он собирается удалить? Если да, могу я сказать, чтобы это не беспокоило, так как это единственный запущенный запрос?

Ответы [ 2 ]

1 голос
/ 08 декабря 2008

См. Производительность SQL-запросов - Вы чувствуете себя грязным? (Грязные чтения) .

Редактировать: это всего лишь предположение, но если вы являетесь единственным подключением к SQL Server, вы можете получить эксклюзивную блокировку на уровне таблицы, используя WITH (TABLOCKX). Вы жертвуете параллелизмом, но он может стать быстрее.

0 голосов
/ 08 декабря 2008

Отключить автокоммит (он же неявные транзакции); вам нужно будет выполнить commit () в конце. Файл журнала будет соответственно увеличен, убедитесь, что у вас достаточно места на диске. На этом же диске находится tempdb?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...