Condividi tramite


Pool di connessioni compatibile con il driver nel driver ODBC per SQL Server

Scaricare il driver ODBC

ODBC Driver for SQL Server supporta il supporta il pool di connessioni compatibile con il driver. Questo articolo descrive i miglioramenti apportati al pool di connessioni compatibile con il driver in Microsoft ODBC Driver for SQL Server in Windows:

  • Indipendentemente dalle proprietà delle connessioni, le connessioni che usano SQLDriverConnect vengono inserite in un pool separato rispetto alle connessioni che usano SQLConnect.

  • Quando si usa l'autenticazione di SQL Server e il pool di connessioni compatibile con il driver, il driver non usa il contesto di sicurezza dell'utente di Windows per il thread corrente per separare le connessioni nel pool. Ovvero, se le connessioni hanno parametri equivalenti negli scenari di rappresentazione di Windows con l'autenticazione di SQL Server e usano le stesse credenziali dell'autenticazione di SQL Server per connettersi al back-end, diversi utenti di Windows possono potenzialmente usare lo stesso pool di connessioni. Quando si usa l'autenticazione di Windows e il pool di connessioni compatibile con il driver, il driver usa il contesto di sicurezza dell'utente corrente di Windows per separare le connessioni nel pool. Ovvero, per gli scenari di rappresentazione di Windows, diversi utenti di Windows non condividono le connessioni anche se le connessioni usano gli stessi parametri.

  • Quando si usa Microsoft Entra ID (in precedenza Azure Active Directory)e il pool di connessioni compatibile con il driver, il driver usa anche il valore di autenticazione per determinare l'appartenenza al pool di connessioni.

  • Il pool di connessioni compatibile con il driver impedisce la restituzione di una connessione non valida dal pool.

  • Il pool di connessioni compatibile con il driver riconosce gli attributi di connessione specifici del driver. Pertanto, se una connessione usa SQL_COPT_SS_APPLICATION_INTENT impostato su sola lettura, tale connessione ottiene il proprio pool di connessioni.

  • Impostando l'attributo SQL_COPT_SS_ACCESS_TOKEN viene creato un pool di connessioni separatamente.

Se uno dei seguenti ID dell'attributo di connessione o delle seguenti parole chiave della stringa di connessione differisce tra la stringa di connessione e la stringa di connessione in pool, il driver usa una connessione in pool. Tuttavia, le prestazioni sono migliori se tutti gli ID dell'attributo di connessione o tutte le parole chiave della stringa di connessione corrispondono. Per trovare una corrispondenza con una connessione nel pool, il driver reimposta l'attributo. Le prestazioni sono ridotte perché la reimpostazione dei parametri seguenti richiede una chiamata di rete aggiuntiva.

  • Se due o più attributi o seguenti parole chiave seguenti della connessione differiscono, non verrà usata una connessione in pool.

    • Language
    • QuoteId
    • SQL_ATTR_TXN_ISOLATION
    • SQL_COPT_SS_QUOTED_IDENT
  • Se è presente una differenza in una qualsiasi delle seguenti parole chiave tra la stringa di connessione e una stringa di connessione in pool, non verrà usata una connessione in pool.

    Parola chiave ODBC Driver 13+ Driver 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
  • Se è presente una differenza in uno qualsiasi dei seguenti attributi tra la stringa di connessione e una stringa di connessione in pool, non verrà usata una connessione in pool.

    Attributo ODBC Driver 13+ Driver 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 No
  • Il driver può ripristinare e modificare le seguenti parole chiave e i seguenti attributi di connessione senza effettuare una chiamata di rete aggiuntiva. Il driver reimposta i parametri seguenti per assicurarsi che la connessione non contenga informazioni non corrette.

    Queste parole chiave della connessione non vengono prese in considerazione quando Gestione driver tenta di abbinare la connessione a una connessione in pool. Anche se si cambia uno di questi parametri, è possibile riutilizzare una connessione esistente. Il driver reimposterà le opzioni, se necessario. Questi attributi possono essere reimpostati sul lato client senza effettuare una chiamata di rete aggiuntiva.

    Parola chiave ODBC Driver 13+ Driver ODBC 11
    AutoTranslate
    Description
    MultisubnetFailover
    QueryLog_On
    QueryLogFile
    QueryLogTime
    Regional
    StatsLog_On
    StatsLogFile

    Modificando uno dei seguenti attributi di connessione, sarà comunque possibile riusare una connessione esistente. Il driver reimposterà il valore in base alla necessità. Il driver può reimpostare questi attributi nel client senza effettuare una chiamata di rete aggiuntiva.

    Attributo ODBC Driver 13+ Driver ODBC 11
    Tutti gli attributi di istruzione
    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

Vedi anche

Microsoft ODBC Driver for SQL Server in Windows