Вопрос

Я знаю, что в Oracle DB я могу настроить флаг, чтобы все запросы выбора, работающие на определенной БД, как если бы NOLOCK Подсказка была добавлена. Есть что-то похожее на SQL Server?

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

Решение

Вы можете установить базу данных в Read_only. Режим, который, безусловно, меняет некоторые правила транзакции, но я не думаю, что есть что -то ближе к глобальному нолоку.

Редактировать

Если вы хотите иметь возможность выполнять удаления, вставления и обновления, но вы не хотите, чтобы читатели блокировали или должны были указать подсказки или уровни изоляции, вы также можете рассмотреть возможность включения. Read_committed_snapshot, но семантика там снова не совсем так же, как нолоцкий подсказка.

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

Не на уровне данных. Вы можете сделать это только с подсказками или set transaction isolation level. Анкет Вы можете установить базу данных для режима только для чтения, что может иметь этот эффект по умолчанию, но который будет (как следует наименование), предотвращают запись в базу данных.

Это может быть полезно для базы данных, которая периодически обновляется. Вы устанавливаете базу данных только для чтения и устанавливаете ее на написание для обновлений, а затем обратно в чтение.

Не для всей базы данных, но для каждого запроса вы делаете:

SELECT a, b
FROM t1
WITH (NOLOCK)
WHERE t1.c = @value

или

SELECT a, b
JOIN t1
ON t1.id = t2.id
WITH (NOLOCK)
FROM t2
WHERE t2.c = @value

и т.д

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