Pooling de conexão com reconhecimento de driver no driver ODBC para SQL Server
O Microsoft ODBC Driver for SQL Server dá suporte para Pool de Conexões com Reconhecimento de Driver. Este artigo descreve os aprimoramentos feitos no pool de conexões com reconhecimento de driver no Microsoft ODBC Driver para SQL Server no Windows:
Quaisquer que sejam as propriedades da conexão, as conexões que usam
SQLDriverConnect
entram em um pool separado das que usamSQLConnect
.Ao usar a Autenticação do SQL Server e o pool de conexões com reconhecimento de driver, o driver não usa o contexto de segurança do usuário do Windows do thread atual para separar as conexões no pool. Ou seja, se as conexões forem equivalentes em seus parâmetros para cenários de representação do Windows com Autenticação do SQL Server e estiverem usando as mesmas credenciais de Autenticação do SQL Server para se conectar ao back-end, diferentes usuários do Windows poderão, potencialmente, usar o mesmo pool de conexões. Ao usar a Autenticação do Windows e o pool de conexões com reconhecimento de driver, o driver usa o contexto de segurança do usuário do Windows para separar as conexões no pool. Ou seja, para cenários de representação do Windows, diferentes usuários do Windows não compartilharão conexões mesmo se elas usarem os mesmos parâmetros.
Quando usar o Microsoft Entra ID (antigo Azure Active Directory) e o pool de conexões com reconhecimento de driver, o driver também usará o valor de Autenticação para determinar a associação no pool de conexões.
O pool de conexões com reconhecimento de driver impede que uma conexão inválida seja retornada do pool.
O pool de conexões com reconhecimento de driver reconhece os atributos de conexão específicos do driver. Portanto, se uma conexão usar
SQL_COPT_SS_APPLICATION_INTENT
definido como somente leitura, essa conexão obterá seu próprio pool de conexões.Definir o atributo
SQL_COPT_SS_ACCESS_TOKEN
faz com que uma conexão seja agrupada separadamente
Se uma das IDs de atributo de conexão ou palavras-chave de cadeia de conexão a seguir for diferente entre a cadeia de conexão e a cadeia de conexão em pool, o driver usará uma conexão em pool. No entanto, o desempenho será melhor se todas as IDs de atributo de conexão ou palavras-chave de cadeia de conexão corresponderem. (Para corresponder a uma conexão no pool, o driver redefine o atributo.) O desempenho é reduzido porque a redefinição dos parâmetros a seguir requer uma chamada de rede extra.
Se dois ou mais dos atributos de conexão ou palavras-chave de conexão a seguir forem diferentes, uma conexão em pool não será usada.
Language
QuoteId
SQL_ATTR_TXN_ISOLATION
SQL_COPT_SS_QUOTED_IDENT
Se houver alguma diferença em alguma das palavras-chave de conexão a seguir entre a cadeia de conexão e uma cadeia de conexão em pool, uma conexão em pool não será usada.
Palavra-chave Driver ODBC 13 e posterior ODBC Driver 11 Address
Sim Sim AnsiNPW
Sim Sim App
Sim Sim ApplicationIntent
Sim Sim Authentication
Sim Não ColumnEncryption
Sim Não Database
Sim Sim Encrypt
Sim Sim Failover_Partner
Sim Sim FailoverPartnerSPN
Sim Sim MARS_Connection
Sim Sim Network
Sim Sim PWD
Sim Sim Server
Sim Sim ServerSPN
Sim Sim TransparentNetworkIPResolution
Sim Sim Trusted_Connection
Sim Sim TrustServerCertificate
Sim Sim UID
Sim Sim WSID
Sim Sim Se houver alguma diferença em qualquer um dos atributos de conexão a seguir entre a cadeia de conexão e uma cadeia de conexão em pool, uma conexão em pool não será usada.
Atributo Driver ODBC 13 e posterior ODBC Driver 11 SQL_ATTR_CURRENT_CATALOG
Sim Sim SQL_ATTR_PACKET_SIZE
Sim Sim SQL_COPT_SS_ANSI_NPW
Sim Sim SQL_COPT_SS_ACCESS_TOKEN
Sim Não SQL_COPT_SS_AUTHENTICATION
Sim Não SQL_COPT_SS_ATTACHDBFILENAME
Sim Sim SQL_COPT_SS_BCP
Sim Sim SQL_COPT_SS_COLUMN_ENCRYPTION
Sim Não SQL_COPT_SS_CONCAT_NULL
Sim Sim SQL_COPT_SS_ENCRYPT
Sim Sim SQL_COPT_SS_FAILOVER_PARTNER
Sim Sim SQL_COPT_SS_FAILOVER_PARTNER_SPN
Sim Sim SQL_COPT_SS_INTEGRATED_SECURITY
Sim Sim SQL_COPT_SS_MARS_ENABLED
Sim Sim SQL_COPT_SS_OLDPWD
Sim Sim SQL_COPT_SS_SERVER_SPN
Sim Sim SQL_COPT_SS_TRUST_SERVER_CERTIFICATE
Sim Sim SSPROP_AUTH_REPL_SERVER_NAME
Sim Sim SQL_COPT_SS_TNIR
Sim Não O driver pode redefinir e ajustar as palavras-chave e os atributos de conexão a seguir sem fazer uma chamada de rede extra. O driver redefine esses parâmetros para garantir que a conexão não contenha informações incorretas.
Essas palavras-chave de conexão não são consideradas quando o Gerenciador de Driver tenta corresponder a conexão a uma conexão no pool. (Mesmo que você altere um desses parâmetros, uma conexão existente pode ser reutilizada. O driver redefinirá as opções, conforme necessário.) Esses atributos podem ser redefinidos no lado do cliente sem fazer uma chamada de rede extra.
Palavra-chave Driver ODBC 13 e posterior ODBC Driver 11 AutoTranslate
Sim Sim Description
Sim Sim MultisubnetFailover
Sim Sim QueryLog_On
Sim Sim QueryLogFile
Sim Sim QueryLogTime
Sim Sim Regional
Sim Sim StatsLog_On
Sim Sim StatsLogFile
Sim Sim Se você alterar um dos atributos de conexão a seguir, uma conexão existente poderá ser reutilizada. O driver redefinirá o valor conforme a necessidade. O driver pode redefinir esses atributos no lado do cliente sem fazer uma chamada de rede extra.
Atributo Driver ODBC 13 e posterior ODBC Driver 11 Todos os atributos de instrução Sim Sim SQL_ATTR_AUTOCOMMIT
Sim Sim SQL_ATTR_CONNECTION_TIMEOUT
Sim Sim SQL_ATTR_DISCONNECT_BEHAVIOR SQL_ATTR_CONNECTION_TIMEOUT
Sim Sim SQL_ATTR_LOGIN_TIMEOUT
Sim Sim SQL_ATTR_ODBC_CURSORS
Sim Sim SQL_COPT_SS_PERF_DATA
Sim Sim SQL_COPT_SS_PERF_DATA_LOG
Sim Sim SQL_COPT_SS_PERF_DATA_LOG_NOW
Sim Sim SQL_COPT_SS_PERF_QUERY
Sim Sim SQL_COPT_SS_PERF_QUERY_INTERVAL
Sim Sim SQL_COPT_SS_PERF_QUERY_LOG
Sim Sim SQL_COPT_SS_PRESERVE_CURSORS
Sim Sim SQL_COPT_SS_TRANSLATE
Sim Sim SQL_COPT_SS_USER_DATA
Sim Sim SQL_COPT_SS_WARN_ON_CP_ERROR
Sim Sim