Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Base de dados SQL no Microsoft Fabric
O SQL Server 2005 (9.x) introduziu um novo nível de isolamento "snapshot" destinado a melhorar a concorrência para aplicações de processamento de transações online (OLTP). Nas versões anteriores do SQL Server, a concorrência baseava-se exclusivamente no bloqueio, o que pode causar problemas de bloqueio e deadlocks em algumas aplicações. O isolamento de instantâneos depende de melhorias na versão de linhas e destina-se a melhorar o desempenho evitando cenários de bloqueio leitor-escritor.
As transações que começam sob isolamento de snapshots leem um snapshot da base de dados no momento em que a transação começa. Keyset, cursores de servidor dinâmicos e estáticos, abertos num contexto de transação instantânea, comportam-se de forma semelhante a cursores estáticos que eram abertos em transações serializáveis. No entanto, quando os cursores são abertos sob o snapshot, os bloqueios de nível de isolamento não são tomados. Este facto pode reduzir o bloqueio no servidor.
Driver OLE DB para SQL Server
O Driver OLE DB para SQL Server tem melhorias que aproveitam o isolamento de snapshots introduzido no SQL Server 2005 (9.x). Estas melhorias incluem alterações aos conjuntos de propriedades DBPROPSET_DATASOURCEINFO e DBPROPSET_SESSION.
DBPROPSET_DATASOURCEINFO
O conjunto de propriedades DBPROPSET_DATASOURCEINFO foi alterado para indicar que o nível de isolamento do instantâneo é suportado pela adição do valor DBPROPVAL_TI_SNAPSHOT usado na propriedade DBPROP_SUPPORTEDTXNISOLEVELS. Este novo valor indica que o nível de isolamento de instantâneos é suportado, independentemente de a versão ter sido ativada na base de dados ou não. A tabela seguinte lista os valores DBPROP_SUPPORTEDTXNISOLEVELS:
| ID da Propriedade | Description |
|---|---|
| DBPROP_SUPPORTEDTXNISOLEVELS | Tipo: VT_I4 R/W: Só leitura Descrição: Uma máscara de bits que especifica os níveis de isolamento de transações suportados. Uma combinação de zero ou mais dos seguintes: 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
O conjunto de propriedades DBPROPSET_SESSION foi alterado para indicar que o nível de isolamento do instantâneo é suportado pela adição do valor DBPROPVAL_TI_SNAPSHOT usado na propriedade DBPROP_SESS_AUTOCOMMITISOLEVELS. Este novo valor indica que o nível de isolamento de instantâneos é suportado, independentemente de a versão ter sido ativada na base de dados ou não. A tabela seguinte lista os valores de DBPROP_SESS_AUTOCOMMITISOLEVELS:
| ID da Propriedade | Description |
|---|---|
| DBPROP_SESS_AUTOCOMMITISOLEVELS | Tipo: VT_I4 R/W: Só leitura Descrição: Especifica uma máscara de bits que indica o nível de isolamento da transação enquanto está em modo de auto-commit. Os valores que podem ser definidos nesta máscara de bits são os mesmos que podem ser definidos para DBPROP_SUPPORTEDTXNISOLEVELS. |
Observação
Os erros DB_S_ERRORSOCCURRED ou DB_E_ERRORSOCCURRED ocorrerão se DBPROPVAL_TI_SNAPSHOT for definido ao usar versões do SQL Server anteriores ao SQL Server 2005 (9.x).
Para informações sobre como o isolamento de snapshots é suportado em transações, consulte Suporte a Transações Locais.
Ver também
Driver OLE DB para Funcionalidades do SQL Server
Propriedades e Comportamentos do Conjunto de Linhas