Организация пулов соединений с учетом драйвера в ODBC Driver for SQL Server
Драйвер ODBC для SQL Server поддерживает пул подключений с поддержкой драйверов. В этой статье описываются улучшения, внесенные в пул подключений с поддержкой драйверов в драйвере Microsoft ODBC для SQL Server в Windows:
Независимо от свойств соединения, использующие
SQLDriverConnect
, помещаются в пул, отличный от пула соединений, использующихSQLConnect
.При использовании пула подключений с поддержкой проверки подлинности SQL Server и пула подключений с поддержкой драйверов драйвер не использует контекст безопасности пользователя Windows для текущего потока для разделения подключений в пуле. То есть, если подключения эквивалентны в своих параметрах для сценариев олицетворения Windows с проверкой подлинности SQL Server, и они используют те же учетные данные проверки подлинности SQL Server для подключения к серверной части, разные пользователи Windows могут потенциально использовать один пул подключений. При использовании проверки подлинности Windows и организации пулов соединений с учетом драйвера драйвер использует текущий контекст безопасности пользователя Windows, чтобы разделить соединения в пуле. Таким образом, для сценариев олицетворения Windows различные пользователи Windows не используют совместно одни и те же соединения, даже если эти соединения используют одинаковые параметры.
При использовании идентификатора Microsoft Entra (ранее Azure Active Directory) и пула подключений с поддержкой драйверов драйвер также использует значение проверки подлинности для определения членства в пуле подключений.
Организация пулов соединений с учетом драйвера предотвращает возвращение плохого соединения из пула.
Организация пулов соединений с учетом драйвера распознает атрибуты соединения для конкретного драйвера. Таким образом, если соединение использует
SQL_COPT_SS_APPLICATION_INTENT
в режиме только для чтения, это соединение получает собственный пул соединений.Установка атрибута
SQL_COPT_SS_ACCESS_TOKEN
означает, что для соединения будет создан отдельный пул
Если один из следующих идентификаторов атрибутов соединения или ключевых слов строки подключения различается между строкой подключения и строкой подключения в пуле, драйвер использует соединение в составе пула. Тем не менее производительность повышается, когда все идентификаторы атрибутов соединения или ключевые слова строки подключения совпадают. (Для сопоставления соединения в пуле драйвер сбрасывает атрибут.) Производительность снижается, поскольку для сброса следующих параметров требуется дополнительный вызов по сети.
Если два или более из следующих атрибутов соединения или ключевых слов соединения не совпадают, соединение в составе пула не используется.
Language
QuoteId
SQL_ATTR_TXN_ISOLATION
SQL_COPT_SS_QUOTED_IDENT
Если существует различие в любом из следующих ключевых слов соединения между строкой подключения и строкой подключения в пуле, соединение в составе пула не используется.
Ключевое слово Драйвер ODBC 13+ Драйвер ODBC 11 Address
Да Да AnsiNPW
Да Да App
Да Да ApplicationIntent
Да Да Authentication
Да No ColumnEncryption
Да No Database
Да Да Encrypt
Да Да Failover_Partner
Да Да FailoverPartnerSPN
Да Да MARS_Connection
Да Да Network
Да Да PWD
Да Да Server
Да Да ServerSPN
Да Да TransparentNetworkIPResolution
Да Да Trusted_Connection
Да Да TrustServerCertificate
Да Да UID
Да Да WSID
Да Да Если существует различие в любом из следующих атрибутов соединения между строкой подключения и строкой подключения в пуле, соединение в составе пула не используется.
Атрибут Драйвер ODBC 13+ Драйвер ODBC 11 SQL_ATTR_CURRENT_CATALOG
Да Да SQL_ATTR_PACKET_SIZE
Да Да SQL_COPT_SS_ANSI_NPW
Да Да SQL_COPT_SS_ACCESS_TOKEN
Да No SQL_COPT_SS_AUTHENTICATION
Да No SQL_COPT_SS_ATTACHDBFILENAME
Да Да SQL_COPT_SS_BCP
Да Да SQL_COPT_SS_COLUMN_ENCRYPTION
Да No SQL_COPT_SS_CONCAT_NULL
Да Да SQL_COPT_SS_ENCRYPT
Да Да SQL_COPT_SS_FAILOVER_PARTNER
Да Да SQL_COPT_SS_FAILOVER_PARTNER_SPN
Да Да SQL_COPT_SS_INTEGRATED_SECURITY
Да Да SQL_COPT_SS_MARS_ENABLED
Да Да SQL_COPT_SS_OLDPWD
Да Да SQL_COPT_SS_SERVER_SPN
Да Да SQL_COPT_SS_TRUST_SERVER_CERTIFICATE
Да Да SSPROP_AUTH_REPL_SERVER_NAME
Да Да SQL_COPT_SS_TNIR
Да Нет Драйвер может сбросить и настроить следующие ключевые слова и атрибуты соединения без выполнения дополнительного вызова по сети. Драйвер сбрасывает эти параметры, чтобы убедиться, что соединение не содержит неверные сведения.
Эти ключевые слова соединения не учитываются, когда диспетчер драйверов пытается сопоставить соединение с соединением в пуле. (Даже изменив один из этих параметров, вы сможете повторно использовать существующее подключение, так как драйвер сбрасывает значения параметров по мере необходимости.) Эти атрибуты можно сбросить на стороне клиента, не создавая дополнительный сетевой вызов.
Ключевое слово Драйвер ODBC 13+ Драйвер ODBC 11 AutoTranslate
Да Да Description
Да Да MultisubnetFailover
Да Да QueryLog_On
Да Да QueryLogFile
Да Да QueryLogTime
Да Да Regional
Да Да StatsLog_On
Да Да StatsLogFile
Да Да При изменении одного из следующих атрибутов соединения можно повторно использовать существующее соединения. Драйвер выполнит сброс значения по мере необходимости. Драйвер может сбросить эти атрибуты на стороне клиента без выполнения дополнительного вызова по сети.
Атрибут Драйвер ODBC 13+ Драйвер ODBC 11 Все атрибуты инструкции Да Да SQL_ATTR_AUTOCOMMIT
Да Да SQL_ATTR_CONNECTION_TIMEOUT
Да Да SQL_ATTR_DISCONNECT_BEHAVIOR SQL_ATTR_CONNECTION_TIMEOUT
Да Да SQL_ATTR_LOGIN_TIMEOUT
Да Да SQL_ATTR_ODBC_CURSORS
Да Да SQL_COPT_SS_PERF_DATA
Да Да SQL_COPT_SS_PERF_DATA_LOG
Да Да SQL_COPT_SS_PERF_DATA_LOG_NOW
Да Да SQL_COPT_SS_PERF_QUERY
Да Да SQL_COPT_SS_PERF_QUERY_INTERVAL
Да Да SQL_COPT_SS_PERF_QUERY_LOG
Да Да SQL_COPT_SS_PRESERVE_CURSORS
Да Да SQL_COPT_SS_TRANSLATE
Да Да SQL_COPT_SS_USER_DATA
Да Да SQL_COPT_SS_WARN_ON_CP_ERROR
Да Да