Могу ли я применить NOLOCK с широкой настройкой базы данных?

StackOverflow https://stackoverflow.com/questions/2836135

  •  26-09-2019
  •  | 
  •  

Вопрос

Есть ли способ сделать с помощью (NOLOCK) на любой оператор SELECT, запущенный в конкретной базе данных?

Это было полезно?

Решение

Нет, но вы можете использовать Изоляция снимка Уровень базы данных на SQL Server 2005 и выше, он должен много помогать с тупиками

SQL Server 2005 вводит расширения уровня изоляции SQL-92 с внедрением уровня изоляции снимков и дополнительной реализации прочитанного. Новый уровень изоляции read_commamed_snapshot может прозрачно заменять прочитанные для всех транзакций.

Изоляция снимка Указывает, что данные, чтение в рамках транзакции, никогда не отражают изменения, сделанные другими одновременными транзакциями. Транзакция использует версии строки данных, которые существуют при запуске транзакции. Замки не помещаются на данные, когда он читается, поэтому транзакции снимки не блокируют другие транзакции от записи данных. Транзакции, которые записывают данные не блокируют транзакции снимков с чтения данных. Вам необходимо включить выделение снимков, установив опцию базы данных allow_snapshot_isolation, чтобы использовать его.

Параметру базы данных read_commated_snapshot определяет поведение преданного уровня изоляции по умолчанию, когда выделение снижения включена в базе данных. Если вы явно не указываете read_commated_snapshot включен, чтение применительно применяется ко всем неявному транзакциям. Это производит такое же поведение, как настройки Read_Commed_snapshot (по умолчанию). Когда read_commamed_snapshot выключен, двигатель базы данных использует общие замки для обеспечения применения уровня изоляции по умолчанию. Если вы устанавливаете опцию базы данных READ_COMMETATED_SNAPSHOT.

Другие советы

Зависит от вашей базы данных. Некоторые двигатели базы данных позволяют вам по умолчанию для грязных чтения или подобных поведений.

Пример, некоторые версии MSSQL Server позволяют настроить базу данных как изоляцию снимков, который описан в посте SQLMenace.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top