Partilhar via


Agrupamento de Conexões Consciente do Driver no Driver ODBC para SQL Server

Baixar driver ODBC

O Driver ODBC para SQL Server suporta Driver-Aware Pool de Conexões. Este artigo descreve as melhorias feitas no pooling de conexões sensível ao driver no Microsoft ODBC Driver for SQL Server no Windows.

  • Quaisquer que sejam as propriedades da ligação, as ligações que usam SQLDriverConnect vão para um pool separado das ligações que usam SQLConnect.

  • Ao usar autenticação SQL Server e pooling de conexões consciente do driver, o driver não utiliza o contexto de segurança do utilizador do Windows para o thread atual para separar as ligações no pool. Ou seja, se as ligações forem equivalentes nos seus parâmetros para cenários de personificação do Windows com autenticação SQL Server, e estiverem a usar as mesmas credenciais de autenticação SQL Server para se ligar ao backend, diferentes utilizadores do Windows podem potencialmente usar o mesmo conjunto de ligações. Ao usar autenticação do Windows e pooling de conexões com reconhecimento do driver, o driver utiliza o contexto de segurança do utilizador atual do Windows para separar as ligações na pool. Ou seja, em cenários de imitação do Windows, diferentes utilizadores do Windows não partilham ligações mesmo que as ligações usem os mesmos parâmetros.

  • Ao usar o Microsoft Entra ID (anteriormente Azure Active Directory) e o pooling de ligações com reconhecimento de driver, o driver também utiliza o valor de Autenticação para determinar a afiliação ao pool de ligações.

  • O pooling de ligações consciente do driver impede que uma ligação defeituosa seja devolvida do pool.

  • A agrupamento de conexões orientado para o driver reconhece atributos de conexão específicos do driver. Assim, se uma ligação usar SQL_COPT_SS_APPLICATION_INTENT configurado para apenas leitura, essa ligação obtém o seu próprio pool de ligações.

  • Definir o SQL_COPT_SS_ACCESS_TOKEN atributo faz com que uma ligação seja agrupada separadamente

Se um dos seguintes IDs de atributos de conexão ou palavras-chave de cadeia de ligação for diferente entre a sua cadeia de ligação e a cadeia de ligação em pool, o driver utiliza uma ligação em pool. No entanto, o desempenho é melhor se todos os IDs de atributos de conexão ou palavras-chave da cadeia de conexão forem correspondentes. (Para corresponder a uma ligação no pool, o driver reinicia o atributo.) O desempenho degrada-se porque reiniciar os seguintes parâmetros requer uma chamada extra de rede.

  • Se dois ou mais dos atributos ou palavras-chave de ligação seguintes diferirem, uma ligação agrupada não é utilizada.

    • Language
    • QuoteId
    • SQL_ATTR_TXN_ISOLATION
    • SQL_COPT_SS_QUOTED_IDENT
  • Se houver uma diferença em qualquer uma das seguintes palavras-chave de conexão entre a sua string de conexão e uma string de conexão em pool, uma conexão em pool não é utilizada.

    Keyword Driver ODBC 13+ Driver ODBC 11
    Address Yes Yes
    AnsiNPW Yes Yes
    App Yes Yes
    ApplicationIntent Yes Yes
    Authentication Yes Não
    ColumnEncryption Yes Não
    Database Yes Yes
    Encrypt Yes Yes
    Failover_Partner Yes Yes
    FailoverPartnerSPN Yes Yes
    MARS_Connection Yes Yes
    Network Yes Yes
    PWD Yes Yes
    Server Yes Yes
    ServerSPN Yes Yes
    TransparentNetworkIPResolution Yes Yes
    Trusted_Connection Yes Yes
    TrustServerCertificate Yes Yes
    UID Yes Yes
    WSID Yes Yes
  • Se houver uma diferença em qualquer um dos seguintes atributos de ligação entre a sua cadeia de ligação e uma cadeia de ligação agrupada, não é utilizada uma ligação agrupada.

    Attribute Driver ODBC 13+ Driver ODBC 11
    SQL_ATTR_CURRENT_CATALOG Yes Yes
    SQL_ATTR_PACKET_SIZE Yes Yes
    SQL_COPT_SS_ANSI_NPW Yes Yes
    SQL_COPT_SS_ACCESS_TOKEN Yes Não
    SQL_COPT_SS_AUTHENTICATION Yes Não
    SQL_COPT_SS_ATTACHDBFILENAME Yes Yes
    SQL_COPT_SS_BCP Yes Yes
    SQL_COPT_SS_COLUMN_ENCRYPTION Yes Não
    SQL_COPT_SS_CONCAT_NULL Yes Yes
    SQL_COPT_SS_ENCRYPT Yes Yes
    SQL_COPT_SS_FAILOVER_PARTNER Yes Yes
    SQL_COPT_SS_FAILOVER_PARTNER_SPN Yes Yes
    SQL_COPT_SS_INTEGRATED_SECURITY Yes Yes
    SQL_COPT_SS_MARS_ENABLED Yes Yes
    SQL_COPT_SS_OLDPWD Yes Yes
    SQL_COPT_SS_SERVER_SPN Yes Yes
    SQL_COPT_SS_TRUST_SERVER_CERTIFICATE Yes Yes
    SSPROP_AUTH_REPL_SERVER_NAME Yes Yes
    SQL_COPT_SS_TNIR Yes Não
  • O driver pode reiniciar e reajustar as seguintes palavras-chave e atributos da ligação sem efetuar uma chamada extra de rede. O driver reinicia estes parâmetros para garantir que a ligação não contém informações incorretas.

    Estas palavras-chave de ligação não são consideradas quando o Driver Manager tenta associar a sua ligação com uma ligação no pool. (Mesmo que altere um destes parâmetros, uma ligação existente pode ser reutilizada. O driver irá reiniciar as opções, conforme necessário.) Estes atributos podem ser reiniciados no lado do cliente sem necessidade de uma chamada extra de rede.

    Keyword Driver ODBC 13+ Driver ODBC 11
    AutoTranslate Yes Yes
    Description Yes Yes
    MultisubnetFailover Yes Yes
    QueryLog_On Yes Yes
    QueryLogFile Yes Yes
    QueryLogTime Yes Yes
    Regional Yes Yes
    StatsLog_On Yes Yes
    StatsLogFile Yes Yes

    Se alterar um dos seguintes atributos de ligação, uma ligação existente pode ser reutilizada. O driver irá redefinir o valor, conforme necessário. O driver pode redefinir estes atributos no cliente sem fazer uma chamada extra de rede.

    Attribute Driver ODBC 13+ Driver ODBC 11
    Todos os atributos da declaração Yes Yes
    SQL_ATTR_AUTOCOMMIT Yes Yes
    SQL_ATTR_CONNECTION_TIMEOUT Yes Yes
    SQL_ATTR_DISCONNECT_BEHAVIOR SQL_ATTR_CONNECTION_TIMEOUT Yes Yes
    SQL_ATTR_LOGIN_TIMEOUT Yes Yes
    SQL_ATTR_ODBC_CURSORS Yes Yes
    SQL_COPT_SS_PERF_DATA Yes Yes
    SQL_COPT_SS_PERF_DATA_LOG Yes Yes
    SQL_COPT_SS_PERF_DATA_LOG_NOW Yes Yes
    SQL_COPT_SS_PERF_QUERY Yes Yes
    SQL_COPT_SS_PERF_QUERY_INTERVAL Yes Yes
    SQL_COPT_SS_PERF_QUERY_LOG Yes Yes
    SQL_COPT_SS_PRESERVE_CURSORS Yes Yes
    SQL_COPT_SS_TRANSLATE Yes Yes
    SQL_COPT_SS_USER_DATA Yes Yes
    SQL_COPT_SS_WARN_ON_CP_ERROR Yes Yes

Ver também

Driver ODBC da Microsoft para SQL Server no Windows