Работа с изоляцией моментального снимка
Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics AnalyticsPlatform System (PDW)
В SQL Server 2005 (9.x) появился новый уровень изоляции «моментального снимка», предназначенный для повышения параллелизма приложений оперативной обработки транзакций (OLTP). В предыдущих версиях SQL Server параллелизм был основан исключительно на блокировках, что могло вызвать проблемы с блокировками и взаимоблокировками для некоторых приложений. Изоляция моментального снимка зависит от расширений управления версиями строк и предназначена для улучшения производительности путем исключения сценариев блокировки модулей чтения или записи.
Транзакции, запускаемые в режиме изоляции моментальных снимков, читают моментальный снимок базы данных на момент запуска транзакции. Поведение набора ключей, динамических и статических серверных курсоров, открываемых в контексте транзакции моментальных снимков, более походит на поведение статических курсоров, открытых в рамках сериализуемых транзакций. Однако, когда курсоры открыты на уровне изоляции моментальных снимков, блокировки не применяются. Это может снизить блокирование на сервере.
Драйвер OLE DB для SQL Server
OLE DB Driver for SQL Server имеет дополнения, позволяющие использовать изоляцию моментального снимка, добавленную в версии SQL Server 2005 (9.x). Среди этих улучшений изменения наборов свойств DBPROPSET_DATASOURCEINFO и DBPROPSET_SESSION.
DBPROPSET_DATASOURCEINFO
Набор свойств DBPROPSET_DATASOURCEINFO изменен и указывает на поддержку уровня изоляции моментальных снимков благодаря добавлению значения DBPROPVAL_TI_SNAPSHOT, используемого в свойстве DBPROP_SUPPORTEDTXNISOLEVELS. Это новое значение указывает, что уровень изоляции моментального снимка поддерживается независимо от того, включено ли в базе данных управление версиями. В следующей таблице приведен список значений DBPROP_SUPPORTEDTXNISOLEVELS.
Идентификатор свойства | Описание |
---|---|
DBPROP_SUPPORTEDTXNISOLEVELS | Тип: VT_I4 Ч/З Только для чтения Описание. Битовая маска, указывающая поддерживаемый уровень изоляции транзакции. Сочетание может включать нуль или несколько следующих значений: DBPROPVAL_TI_CHAOS DBPROPVAL_TI_READUNCOMMITTED DBPROPVAL_TI_BROWSE DBPROPVAL_TI_CURSORSTABILITY DBPROPVAL_TI_READCOMMITTED DBPROPVAL_TI_REPEATABLEREAD DBPROPVAL_TI_SERIALIZABLE DBPROPVAL_TI_ISOLATED DBPROPVAL_TI_SNAPSHOT |
Набор свойств DBPROPSET_SESSION
Набор свойств DBPROPSET_SESSION изменен и указывает на поддержку уровня изоляции моментальных снимков благодаря добавлению значения DBPROPVAL_TI_SNAPSHOT, используемого в свойстве DBPROP_SESS_AUTOCOMMITISOLEVELS. Это новое значение указывает, что уровень изоляции моментального снимка поддерживается независимо от того, включено ли в базе данных управление версиями. В таблице ниже приведен список значений DBPROP_SESS_AUTOCOMMITISOLEVELS.
Идентификатор свойства | Описание |
---|---|
DBPROP_SESS_AUTOCOMMITISOLEVELS | Тип: VT_I4 Ч/З Только для чтения Описание. Задает битовую маску, которая указывает уровень изоляции транзакции в режиме автоматической фиксации. Значения, которые можно установить в этой битовой маске, такие же, как устанавливаемые для DBPROP_SUPPORTEDTXNISOLEVELS. |
Примечание
Ошибки DB_S_ERRORSOCCURRED или DB_E_ERRORSOCCURRED происходят, если значение DBPROPVAL_TI_SNAPSHOT установлено при использовании версий SQL Server, предшествующих SQL Server 2005 (9.x).
Сведения о поддержке изоляции моментального снимка в транзакциях см. в статье Поддержка локальных транзакций.
См. также:
Возможности драйвера OLE DB для SQL Server
Свойства и поведение наборов строк
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по