Udostępnij przez


Driver-Aware buforowanie połączeń w sterowniku ODBC dla programu SQL Server

pobierz sterownika ODBC

Sterownik ODBC dla programu SQL Server obsługuje buforowanie połączeń ze świadomością sterownika. W tym artykule opisano ulepszenia puli połączeń z obsługą sterowników w sterowniku MICROSOFT ODBC dla programu SQL Server w systemie Windows:

  • Niezależnie od właściwości połączenia, połączenia, które używają SQLDriverConnect, trafiają do osobnej puli niż te korzystające z SQLConnect.

  • W przypadku korzystania z uwierzytelniania programu SQL Server i buforowania połączeń obsługujących sterowniki sterownik nie używa kontekstu zabezpieczeń użytkownika systemu Windows dla bieżącego wątku do oddzielnych połączeń w puli. Oznacza to, że jeśli połączenia są równoważne w swoich parametrach dla scenariuszy personifikacji systemu Windows z uwierzytelnianiem programu SQL Server i używają tych samych poświadczeń uwierzytelniania programu SQL Server w celu nawiązania połączenia z zapleczem, różni użytkownicy systemu Windows mogą potencjalnie używać tej samej puli połączeń. W przypadku korzystania z uwierzytelniania systemu Windows i sterownika obsługującego pulę połączeń, sterownik używa kontekstu zabezpieczeń bieżącego użytkownika systemu Windows do separowania połączeń w puli. Oznacza to, że w przypadku scenariuszy personifikacji systemu Windows różni użytkownicy systemu Windows nie współużytkują połączeń, nawet jeśli połączenia używają tych samych parametrów.

  • W przypadku korzystania z usługi Microsoft Entra ID (dawniej Azure Active Directory) i buforowania połączeń z obsługą sterownika, sterownik używa również wartości uwierzytelniania do określenia członkostwa w puli połączeń.

  • Buforowanie połączeń świadome sterownika uniemożliwia zwrócenie nieprawidłowego połączenia z puli.

  • Buforowanie połączeń uwzględniające sterownik rozpoznaje atrybuty połączeń specyficzne dla sterownika. Dlatego jeśli połączenie używa SQL_COPT_SS_APPLICATION_INTENT ustawionego na tryb tylko do odczytu, to połączenie otrzymuje własną pulę połączeń.

  • Ustawienie atrybutu SQL_COPT_SS_ACCESS_TOKEN powoduje, że połączenie jest umieszczane w osobnej puli

Jeśli jeden z następujących identyfikatorów atrybutów połączenia lub słów kluczowych parametrów połączenia różni się między Twoim parametrem połączenia a parametrem połączenia w puli, sterownik używa połączenia w puli. Jednak wydajność jest lepsza, jeśli wszystkie identyfikatory atrybutów połączenia lub słowa kluczowe parametrów połączenia są zgodne. (Aby dopasować połączenie w puli, sterownik resetuje atrybut). Wydajność spada, ponieważ zresetowanie następujących parametrów wymaga dodatkowego wywołania sieciowego.

  • Jeśli co najmniej dwa z następujących atrybutów połączenia lub słów kluczowych połączenia różnią się, połączenie w puli nie jest używane.

    • Language
    • QuoteId
    • SQL_ATTR_TXN_ISOLATION
    • SQL_COPT_SS_QUOTED_IDENT
  • Jeśli istnieje różnica dla następujących słów kluczowych połączenia pomiędzy parametrami Twojego ciągu połączenia a parametrami ciągu połączenia w puli, połączenie z puli nie będzie używane.

    Keyword Sterownik ODBC 13+ Sterownik ODBC 11
    Address Tak Tak
    AnsiNPW Tak Tak
    App Tak Tak
    ApplicationIntent Tak Tak
    Authentication Tak Nie.
    ColumnEncryption Tak Nie.
    Database Tak Tak
    Encrypt Tak Tak
    Failover_Partner Tak Tak
    FailoverPartnerSPN Tak Tak
    MARS_Connection Tak Tak
    Network Tak Tak
    PWD Tak Tak
    Server Tak Tak
    ServerSPN Tak Tak
    TransparentNetworkIPResolution Tak Tak
    Trusted_Connection Tak Tak
    TrustServerCertificate Tak Tak
    UID Tak Tak
    WSID Tak Tak
  • Jeśli istnieje różnica w którymkolwiek z następujących atrybutów połączenia między twoim łańcuchem połączenia a łańcuchem połączenia z puli, połączenie z puli nie jest używane.

    Attribute Sterownik ODBC 13+ Sterownik ODBC 11
    SQL_ATTR_CURRENT_CATALOG Tak Tak
    SQL_ATTR_PACKET_SIZE Tak Tak
    SQL_COPT_SS_ANSI_NPW Tak Tak
    SQL_COPT_SS_ACCESS_TOKEN Tak Nie.
    SQL_COPT_SS_AUTHENTICATION Tak Nie.
    SQL_COPT_SS_ATTACHDBFILENAME Tak Tak
    SQL_COPT_SS_BCP Tak Tak
    SQL_COPT_SS_COLUMN_ENCRYPTION Tak Nie.
    SQL_COPT_SS_CONCAT_NULL Tak Tak
    SQL_COPT_SS_ENCRYPT Tak Tak
    SQL_COPT_SS_FAILOVER_PARTNER Tak Tak
    SQL_COPT_SS_FAILOVER_PARTNER_SPN Tak Tak
    SQL_COPT_SS_INTEGRATED_SECURITY Tak Tak
    SQL_COPT_SS_MARS_ENABLED Tak Tak
    SQL_COPT_SS_OLDPWD Tak Tak
    SQL_COPT_SS_SERVER_SPN Tak Tak
    SQL_COPT_SS_TRUST_SERVER_CERTIFICATE Tak Tak
    SSPROP_AUTH_REPL_SERVER_NAME Tak Tak
    SQL_COPT_SS_TNIR Tak Nie.
  • Sterownik może zresetować i dostosować następujące słowa kluczowe i atrybuty połączenia bez wykonywania dodatkowego wywołania sieciowego. Sterownik resetuje te parametry, aby upewnić się, że połączenie nie zawiera nieprawidłowych informacji.

    Te słowa kluczowe połączenia nie są brane pod uwagę, gdy Menedżer sterowników próbuje dopasować twoje połączenie z jakimkolwiek w puli. (Nawet jeśli zmienisz jeden z tych parametrów, istniejące połączenie można użyć ponownie. Sterownik zresetuje opcje zgodnie z potrzebami). Te atrybuty można zresetować po stronie klienta bez wykonywania dodatkowych wywołań sieciowych.

    Keyword Sterownik ODBC 13+ Sterownik ODBC 11
    AutoTranslate Tak Tak
    Description Tak Tak
    MultisubnetFailover Tak Tak
    QueryLog_On Tak Tak
    QueryLogFile Tak Tak
    QueryLogTime Tak Tak
    Regional Tak Tak
    StatsLog_On Tak Tak
    StatsLogFile Tak Tak

    Jeśli zmienisz jeden z następujących atrybutów połączenia, istniejące połączenie można użyć ponownie. Sterownik zresetuje wartość zgodnie z potrzebami. Sterownik może zresetować te atrybuty w kliencie bez wykonywania dodatkowych wywołań sieciowych.

    Attribute Sterownik ODBC 13+ Sterownik ODBC 11
    Wszystkie atrybuty zapytania Tak Tak
    SQL_ATTR_AUTOCOMMIT Tak Tak
    SQL_ATTR_CONNECTION_TIMEOUT Tak Tak
    SQL_ATTR_DISCONNECT_BEHAVIOR SQL_ATTR_CONNECTION_TIMEOUT Tak Tak
    SQL_ATTR_LOGIN_TIMEOUT Tak Tak
    SQL_ATTR_ODBC_CURSORS Tak Tak
    SQL_COPT_SS_PERF_DATA Tak Tak
    SQL_COPT_SS_PERF_DATA_LOG Tak Tak
    SQL_COPT_SS_PERF_DATA_LOG_NOW Tak Tak
    SQL_COPT_SS_PERF_QUERY Tak Tak
    SQL_COPT_SS_PERF_QUERY_INTERVAL Tak Tak
    SQL_COPT_SS_PERF_QUERY_LOG Tak Tak
    SQL_COPT_SS_PRESERVE_CURSORS Tak Tak
    SQL_COPT_SS_TRANSLATE Tak Tak
    SQL_COPT_SS_USER_DATA Tak Tak
    SQL_COPT_SS_WARN_ON_CP_ERROR Tak Tak

Zobacz też

sterownik Microsoft ODBC dla programu SQL Server w systemie Windows