Активиране на нивата на изолация с версии на низове, Microsoft Docs
Администраторите на бази данни контролират настройките на ниво база данни въз основа на версията на редове, като използват READ_COMMITTED_SNAPSHOT и ALLOW_SNAPSHOT_ISOLATION опциите на базата данни на израза ALTER DATABASE.
Когато опцията за база данни READ_COMMITTED_SNAPSHOT е настроена на ON, механизмите, които поддържат тази функция, се активират незабавно. Когато зададете опцията READ_COMMITTED_SNAPSHOT на база данни, можете да се свържете само с помощта на командата ALTER DATABASE. Не трябва да има други отворени връзки в базата данни, докато операторът ALTER DATABASE не завърши. Базата данни не трябва да е в режим на един потребител.
Следният оператор на Transact-SQL включва READ_COMMITTED_SNAPSHOT:
Ако опцията за база данни ALLOW_SNAPSHOT_ISOLATION е зададена на ON, екземплярът на Microsoft SQL Server Database Engine не създава версии на редове за модифицирани данни, докато не завършат всички модифициращи данни транзакции. Ако транзакциите за модифициране на данни са активни, тогава SQL Server задава стойността на параметъра на PENDING_ON. След завършване на всички транзакции за модифициране на данни стойността на параметъра се променя на ON. Потребителят не може да започне транзакция за моментна снимка в базата данни, докато настройката не е включена. Базата данни преминава през състояние PENDING_OFF, когато DBA зададе опцията ALLOW_SNAPSHOT_ISOLATION на OFF.
Следният оператор на Transact-SQL включва опцията ALLOW_SNAPSHOT_ISOLATION:
Следващата таблица изброява и описва стойностите за опцията ALLOW_SNAPSHOT_ISOLATION. Използване на израза ALTER DATABASE с параметърALLOW_SNAPSHOT_ISOLATION няма да попречи на други потребители, които в момента използват данни от база данни.
Състояние на рамката за изолиране на моментна снимка на текущата база данни
Поддръжката за транзакции за изолиране на моментни снимки не е активирана. Транзакциите за изолиране на моментни снимки не са разрешени.
Поддръжката на транзакции за изолиране на моментни снимки е в преходно състояние (от ИЗКЛЮЧЕНО на ВКЛЮЧЕНО). Отворените транзакции трябва да завършат работата си.
Транзакциите за изолиране на моментни снимки не са разрешени.
Поддръжката за транзакции за изолиране на моментни снимки е активирана.
Транзакциите за изолиране на моментни снимки са разрешени.
Поддръжката на транзакции за изолиране на моментни снимки е в преход (от ВКЛ. към ИЗКЛ.).
Транзакциите за моментна снимка, стартирани след тази точка, нямат достъп до базата данни. Транзакциите за актуализиране все още водят до допълнителни разходи поради разлики във версиите в дадена база данни. Съществуващите моментни транзакции все още имат достъп до базата данни. Състоянието PENDING_OFF не преминава в състояние OFF, докато не завършат всички моментни транзакции, които са били активни, когато настройката за изолиране на моментна снимка на базата данни е била ON.
Използвайте изгледа на каталога sys.databases, за да определите състоянието на настройките за версия на ред на базата данни.
Всички актуализации на потребителски таблици и някои системни таблици, съхранени в основните и msdb бази данни, създават версии на редове.
Опцията ALLOW_SNAPSHOT_ISOLATION е автоматично зададена на ON в основните и msdb бази данни и не може да бъде деактивирана.
Потребителят не може да зададе опцията READ_COMMITTED_SNAPSHOT на ON в базите данниmaster, tempdb или msdb.