Treiberfähiges Verbindungspooling im ODBC-Treiber für SQL Server.
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, dieSQLConnect
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