Treiberfähiges Verbindungspooling im ODBC-Treiber für SQL Server.

ODBC-Treiber herunterladen

Der ODBC Driver for SQL Server unterstützt treiberfähiges Verbindungspooling. In diesem Artikel werden die Verbesserungen in Bezug auf das treiberfähige Verbindungspooling im Microsoft ODBC Driver for SQL Server unter Windows beschrieben:

  • Unabhängig von den Verbindungseigenschaften wechseln Verbindungen, die SQLDriverConnect verwenden, in einen anderen Pool als Verbindungen, die SQLConnect verwenden.

  • Bei Verwendung der SQL Server-Authentifizierung und des treiberfähigen Verbindungspoolings verwendet der Treiber nicht den Sicherheitskontext des Windows-Benutzers für den aktuellen Thread, um Verbindungen im Pool zu trennen. Das bedeutet: Wenn Verbindungen in ihren Parametern für Identitätswechsel-Szenarien unter Windows mit der SQL Server-Authentifizierung äquivalent sind und die gleichen SQL Server-Anmeldeinformationen für die Verbindung mit dem Back-End verwenden, können andere Windows-Benutzer ggf. den gleichen Pool von Verbindungen verwenden. Bei Verwendung der Windows-Authentifizierung und des treiberfähigen Verbindungspoolings verwendet der Treiber den aktuellen Sicherheitkontext des Windows-Benutzers für den aktuellen Thread, um Verbindungen im Pool zu trennen. Bei Windows-Identitätswechsel-Szenarios verwenden verschiedene Windows-Benutzer Verbindungen daher auch dann nicht gemeinsam, wenn die Verbindungen dieselben Parameter verwenden.

  • Wenn Sie Microsoft Entra ID (ehemals Azure Active Directory) und treiberfähiges Verbindungspooling verwenden, verwendet der Treiber ebenfalls den Authentifizierungswert, um die Mitgliedschaft beim Verbindungspool zu ermitteln.

  • Treiberfähiges Verbindungspooling verhindert, dass eine fehlerhafte Verbindung aus dem Pool zurückgegeben wird.

  • Treiberfähiges Verbindungspooling erkennt treiberspezifische Verbindungsattribute. Wenn eine Verbindung also ein schreibgeschütztes SQL_COPT_SS_APPLICATION_INTENT-Attribut verwendet, erhält diese einen eigenen Verbindungspool.

  • Wenn das SQL_COPT_SS_ACCESS_TOKEN-Attribut festgelegt wird, wird die Verbindung in einen separaten Pool aufgenommen.

Wenn eine der folgenden Verbindungsattribut-IDs oder eines der Schlüsselwörter für Verbindungszeichenfolgen zwischen Ihrer Verbindungszeichenfolge und der in einem Pool zusammengefassten Verbindungszeichenfolge abweicht, verwendet der Treiber eine gepoolte Verbindung. Allerdings ist die Leistung besser, wenn alle Verbindungsattribut-IDs oder Schlüsselwörter für Verbindungszeichenfolgen übereinstimmen. (Um eine Verbindung im Pool zuzuordnen, setzt der Treiber das Attribut zurück.) Die Leistung wird beeinträchtigt, da für das Zurücksetzen der folgenden Parameter ein zusätzlicher Netzwerkaufruf erforderlich ist.

  • Wenn mindestens zwei der folgenden Verbindungsattribute oder Verbindungsschlüsselwörter nicht übereinstimmen, wird keine gepoolte Verbindung verwendet.

    • Language
    • QuoteId
    • SQL_ATTR_TXN_ISOLATION
    • SQL_COPT_SS_QUOTED_IDENT
  • Falls es einen Unterschied in einem der folgenden Verbindungsschlüsselwörter zwischen der jeweiligen Verbindungszeichenfolge und einer gepoolten Verbindungszeichenfolge gibt, wird keine gepoolte Verbindung verwendet.

    Schlüsselwort ODBC-Treiber 13+ ODBC-Treiber 11
    Address Ja Ja
    AnsiNPW Ja Ja
    App Ja Ja
    ApplicationIntent Ja Ja
    Authentication Ja Keine
    ColumnEncryption Ja Keine
    Database Ja Ja
    Encrypt Ja Ja
    Failover_Partner Ja Ja
    FailoverPartnerSPN Ja Ja
    MARS_Connection Ja Ja
    Network Ja Ja
    PWD Ja Ja
    Server Ja Ja
    ServerSPN Ja Ja
    TransparentNetworkIPResolution Ja Ja
    Trusted_Connection Ja Ja
    TrustServerCertificate Ja Ja
    UID Ja Ja
    WSID Ja Ja
  • Falls es einen Unterschied in einem der folgenden Verbindungsattribute zwischen der jeweiligen Verbindungszeichenfolge und einer gepoolten Verbindungszeichenfolge gibt, wird keine gepoolte Verbindung verwendet.

    attribute ODBC-Treiber 13+ ODBC-Treiber 11
    SQL_ATTR_CURRENT_CATALOG Ja Ja
    SQL_ATTR_PACKET_SIZE Ja Ja
    SQL_COPT_SS_ANSI_NPW Ja Ja
    SQL_COPT_SS_ACCESS_TOKEN Ja Keine
    SQL_COPT_SS_AUTHENTICATION Ja Keine
    SQL_COPT_SS_ATTACHDBFILENAME Ja Ja
    SQL_COPT_SS_BCP Ja Ja
    SQL_COPT_SS_COLUMN_ENCRYPTION Ja Keine
    SQL_COPT_SS_CONCAT_NULL Ja Ja
    SQL_COPT_SS_ENCRYPT Ja Ja
    SQL_COPT_SS_FAILOVER_PARTNER Ja Ja
    SQL_COPT_SS_FAILOVER_PARTNER_SPN Ja Ja
    SQL_COPT_SS_INTEGRATED_SECURITY Ja Ja
    SQL_COPT_SS_MARS_ENABLED Ja Ja
    SQL_COPT_SS_OLDPWD Ja Ja
    SQL_COPT_SS_SERVER_SPN Ja Ja
    SQL_COPT_SS_TRUST_SERVER_CERTIFICATE Ja Ja
    SSPROP_AUTH_REPL_SERVER_NAME Ja Ja
    SQL_COPT_SS_TNIR Ja Nein
  • Der Treiber kann die folgenden Verbindungsschlüsselwörter und Attribute zurücksetzen und anpassen, ohne einen zusätzlichen Netzwerkaufruf durchzuführen. Der Treiber setzt diese Parameter zurück, um sicherzustellen, dass die Verbindung keine falschen Informationen enthält.

    Diese Verbindungsschlüsselwörter werden nicht berücksichtigt, wenn der Treiber-Manager versucht, die jeweilige Verbindung einer Verbindung im Pool zuzuordnen. (Auch wenn Sie einen dieser Parameter ändern, kann eine vorhandene Verbindung wiederverwendet werden. Der Treiber setzt die Optionen nach Bedarf zurück.) Diese Attribute können auf der Clientseite zurückgesetzt werden, ohne dass ein zusätzlicher Netzwerkaufruf erforderlich ist.

    Schlüsselwort ODBC-Treiber 13+ ODBC-Treiber 11
    AutoTranslate Ja Ja
    Description Ja Ja
    MultisubnetFailover Ja Ja
    QueryLog_On Ja Ja
    QueryLogFile Ja Ja
    QueryLogTime Ja Ja
    Regional Ja Ja
    StatsLog_On Ja Ja
    StatsLogFile Ja Ja

    Wenn Sie eine der folgenden Verbindungsattribute ändern, kann eine vorhandene Verbindung wiederverwendet werden. Der Treiber wird je nach Bedarf den Wert zurücksetzen. Der Treiber kann diese Attribute clientseitig ohne einen zusätzliche Netzwerkaufruf zurücksetzen

    attribute ODBC-Treiber 13+ ODBC-Treiber 11
    Alle Anweisungsattribute Ja Ja
    SQL_ATTR_AUTOCOMMIT Ja Ja
    SQL_ATTR_CONNECTION_TIMEOUT Ja Ja
    SQL_ATTR_DISCONNECT_BEHAVIOR SQL_ATTR_CONNECTION_TIMEOUT Ja Ja
    SQL_ATTR_LOGIN_TIMEOUT Ja Ja
    SQL_ATTR_ODBC_CURSORS Ja Ja
    SQL_COPT_SS_PERF_DATA Ja Ja
    SQL_COPT_SS_PERF_DATA_LOG Ja Ja
    SQL_COPT_SS_PERF_DATA_LOG_NOW Ja Ja
    SQL_COPT_SS_PERF_QUERY Ja Ja
    SQL_COPT_SS_PERF_QUERY_INTERVAL Ja Ja
    SQL_COPT_SS_PERF_QUERY_LOG Ja Ja
    SQL_COPT_SS_PRESERVE_CURSORS Ja Ja
    SQL_COPT_SS_TRANSLATE Ja Ja
    SQL_COPT_SS_USER_DATA Ja Ja
    SQL_COPT_SS_WARN_ON_CP_ERROR Ja Ja

Weitere Informationen

Microsoft ODBC Driver for SQL Server unter Windows