Следует ли запускать
ALTER DATABASE DbName SET ALLOW_SNAPSHOT_ISOLATION OFF
, если изоляция транзакции моментального снимка (TX) (iso) временно не используется?
Другими словами,
Сколько стоит его включение (но временно не используется) в SQL Server?
- Обновление:
включение ISO-уровня TX моментального снимка в базе данных не изменяет ISO-код READ COMMITTED tx на значение по умолчанию.
Вы можете проверить это, выполнив:
use someDbName;
--( 1 )
alter database someDbName set allow_snapshot_isolation ON;
dbcc useroptions;
последняя строка показывает, что iso-уровень tx текущего сеанса (чтение подтверждено).
Таким образом, включение iso-уровня tx снимка без изменения его не использует и т. Д. Чтобы использовать его, необходимо выполнить
--( 2 )
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
Update2:
Я повторяю сценарии из [1], но с включенным (но не включенным) SNAPSHOT, но без включения READ_COMMITTED_SNAPSHOT
--with enabling allow_snapshot_isolation
alter database snapshottest set allow_snapshot_isolation ON
-- but without enabling read_committed_snapshot
--alter database snapshottest set read_committed_snapshot ON
-- OR with OFF
alter database snapshottest set read_committed_snapshot OFF
go
Нет результатов / строк из выполнения
select * from sys.dm_tran_version_store
после выполнения INSERT, DELETE или UPDATE
Не могли бы вы предоставить мне сценарии, иллюстрирующие, что при включенном уровне ISO SNAPSHOT tx (1), но не включенном (2) создаются любые версии в tempdb и / или увеличивается размер данных с 14 байтами в строке?
На самом деле я не понимаю, какой смысл в управлении версиями, если оно включено (1), но не используется (не установлено (2))?
[1]
Управление TempDB в SQL Server: основы TempDB (Магазин версий: простой пример)
http://blogs.msdn.com/b/sqlserverstorageengine/archive/2008/12/31/managing-tempdb-in-sql -server-tempdb-basics-version-store-simple-example.aspx