Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Base de Dados SQL do Azure
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Importante
SQL Server Native Client (SNAC) não é fornecido com:
- SQL Server 2022 (16.x) e versões posteriores
- SQL Server Management Studio 19 e versões posteriores
O SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o Microsoft OLE DB Provider for SQL Server (SQLOLEDB) herdado não são recomendados para o desenvolvimento de novos aplicativos.
Para novos projetos, use um dos seguintes drivers:
Para o SQLNCLI fornecido como componente do Mecanismo de Base de Dados do SQL Server (versões de 2012 a 2019), consulte esta exceção ao Ciclo de Vida de Suporte .
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. Um resultado disto é que os cursores de keyset, dinâmicos e estáticos do servidor, quando abertos num contexto de transação instantânea, comportam-se de forma semelhante a cursores estáticos 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, o que pode reduzir o bloqueio no servidor.
Fornecedor SQL Server Native Client OLE DB
O fornecedor OLE DB do SQL Server Native Client 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. Segue-se uma lista dos valores DBPROP_SUPPORTEDTXNISOLEVELS:
| ID do imóvel | 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. Segue-se uma lista dos valores DBPROP_SESS_AUTOCOMMITISOLEVELS:
| ID do imóvel | 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. |
Note
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.
Driver ODBC de Cliente Nativo do SQL Server
O driver ODBC do SQL Server Native Client oferece suporte para isolamento de snapshots através de melhorias feitas nas funções SQLSetConnectAttr e SQLGetInfo.
SQLSetConnectAttr
A função SQLSetConnectAttr suporta agora a utilização do atributo SQL_COPT_SS_TXN_ISOLATION. Definir SQL_COPT_SS_TXN_ISOLATION para SQL_TXN_SS_SNAPSHOT indica que a transação ocorrerá abaixo do nível de isolamento do snapshot.
SQLGetInfo
A função SQLGetInfo suporta agora o valor de SQL_TXN_SS_SNAPSHOT que foi adicionado ao tipo de informação SQL_TXN_ISOLATION_OPTION.
Para informações sobre como o isolamento de instantâneos é suportado em transações, veja Nível de Isolamento de Transações do Cursor.