Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Microsoft. Možnosti připojení Data.SqlClient určují, jak ovladač navazuje, identifikuje, směruje, obnovuje a sdružuje spojení. Nastavte je v připojovacím řetězci nebo prostřednictvím odpovídajících vlastností SqlConnectionStringBuilder.
Pro autentizaci Microsoft Entra ID viz Microsoft Entra ID autentizace. Pro nastavení TLS viz Šifrování a ověřování certifikátů.
Nastavte možnosti pomocí SqlConnectionStringBuilder
Použijte builder místo spojování fragmentů připojovací řetězec:
var builder = new SqlConnectionStringBuilder
{
DataSource = "tcp:sql.example.com,1433",
InitialCatalog = "Orders",
IntegratedSecurity = true,
Encrypt = SqlConnectionEncryptOption.Mandatory,
ApplicationName = "Orders.Worker",
ConnectTimeout = 30,
ConnectRetryCount = 3,
ConnectRetryInterval = 10,
MultiSubnetFailover = true,
};
Kód používá názvy stavitelských nemovitostí. Tabulky používají běžné zápisy řetězců připojení. Řidič také přijímá zdokumentované aliasy.
Možnosti timeoutu
| Keyword | Výchozí | Behavior | Version |
|---|---|---|---|
Connect Timeout |
15 sekund | Omezuje to čas na navázání spojení. Když fond připojení dosáhne Max Pool Size, omezuje to také dobu čekání na použitelné připojení z fondu.
Connection Timeout a Timeout jsou aliasy. |
Všechny verze Microsoft.Data.SqlClient |
Command Timeout |
30 sekund | Nastavuje výchozí časový limit pro příkazy spojené s připojením. Nastavte CommandTimeout příkaz, když jedna operace vyžaduje jiný limit. Hodnota 0 není časově omezená a může způsobit, že úloha bude čekat neomezeně dlouho. |
Microsoft. Data.SqlClient 2.1 a novější verze |
Časové limity připojení a příkazů se vztahují k různým operacím.
Connect Timeout Neomezuje to provádění dotazů.
Command Timeout Neomezuje autentizaci ani čekání na společné připojení.
CancellationToken je oddělen od obou nastavení. Předejte ji do OpenAsync, ke spouštění příkazů a metodám čtenáře, aby volající mohl přestat čekat před vypršením časového limitu.
Identita zátěže a možnosti směrování
| Keyword | Výchozí | Behavior | Version |
|---|---|---|---|
Application Name |
Název definovaný poskytovatelem | Identifikuje pracovní zátěž v SQL Server relacích, auditech a diagnostice. Pro každou nasazenou úlohu používejte jeden stabilní název s malou kardinalitou. | Všechny verze Microsoft.Data.SqlClient |
Application Intent |
ReadWrite |
ReadOnly požaduje směrování pro záměr čtení, když jsou pro něj nakonfigurovány cíl a skupina dostupnosti. Nezmění to příkazy SQL na příkazy jen pro čtení. |
Všechny verze Microsoft.Data.SqlClient |
Application Intent=ReadOnly obvykle se spáruje s posluchačem skupiny dostupnosti nebo koncovým zařízením služby, které podporuje směrování čtení. Viz Vysoká dostupnost a obnova po havárii.
Možnosti sítě a paketů
| Keyword | Výchozí | Behavior | Version |
|---|---|---|---|
Packet Size |
8 000 bajtů | Nastavuje velikost síťového paketu Tabulárního datového toku (TDS). Podporované hodnoty jsou od 512 do 32 768 bajtů. Nechte výchozí nastavení, pokud měření zátěže a konfigurace serveru neospravedlní změnu. | Všechny verze Microsoft.Data.SqlClient |
MultiSubnetFailover |
false |
Používá paralelní pokusy o navázání připojení TCP k IP adresám vráceným pro koncový bod s více adresami. Nastavte ho na true pro Azure SQL endpointy, skupinové posluchače dostupnosti a instance clusteru pro failover dosažené přes TCP. |
Všechny verze Microsoft.Data.SqlClient |
MultiSubnetFailover=true není podporován u pojmenovaných instancí, ne-TCP protokolů, zrcadlení databází ani koncových zařízení konfigurovaných s více než 64 IP adresami. Je to bezpečné pro TCP koncový bod s jednou IP adresou.
Microsoft. Data.SqlClient 7.0 má také procesově orientovaný přepínač AppContext, který dokáže způsobit, že každé spojení se chová, jako by MultiSubnetFailover=true. Výchozí připojovací řetězec zůstáváfalse, když tento přepínač není povolen. Viz přepínače AppContext v SqlClient.
Možnosti sdružování
| Keyword | Výchozí | Behavior | Version |
|---|---|---|---|
Pooling |
true |
Znovu používá fyzická spojení pro sladění konfigurací spojení. Vypněte to jen kvůli diagnostice nebo pro řízenou pracovní zátěž, kterou nelze bezpečně sdružovat. | Všechny verze Microsoft.Data.SqlClient |
Min Pool Size |
0 |
Po jeho vytvoření si udrží alespoň tolik fyzických spojení v poolu. Kladná hodnota může udržet databázové relace otevřené, dokud pool nebo proces neskončí. | Všechny verze Microsoft.Data.SqlClient |
Max Pool Size |
100 |
Omezuje počet fyzických připojení v jednom poolu. Žádosti čekají až do Connect Timeout, pokud je fond plný. |
Všechny verze Microsoft.Data.SqlClient |
Load Balance Timeout |
0 sekundy |
Vyřadí spojení, když se vrátí do poolu, pokud jeho stáří překročí tuto hodnotu.
Connection Lifetime je alias.
0 Vylučuje odstraňování podle věku. |
Všechny verze Microsoft.Data.SqlClient |
Pool Blocking Period |
Auto |
Ovládá, zda pool dočasně znovu vyhodí neúspěšné přihlášení v cache.
Autodeaktivuje blokovací období pro rozpoznané Azure SQL endpointy a povoluje ho pro ostatní endpointy. |
Všechny verze Microsoft.Data.SqlClient |
Enlist |
true |
Automaticky zaregistruje otevřené spojení do ambientní System.Transactions transakce. |
Všechny verze Microsoft.Data.SqlClient |
Nastavení poolu platí pro každý samostatný pool, nikoli pro celý proces nebo databázový server. Před vyvoláním Max Pool Size, ověřte, že spojení a čtečky jsou rychle odstraněny a že databáze dokáže přijmout výsledný součet napříč každou instancí aplikace.
Pro klíče poolu, chování tokenů, blokovací období, vymazávání a diagnostiku viz SQL Server connection pooling.
Možnosti obnovy spojení
| Keyword | Výchozí | Behavior | Version |
|---|---|---|---|
Connect Retry Count |
1 |
Nastavuje počet opakování pro kvalifikační přechodné selhání během počátečního připojení a pro obnovení přerušeného nečinného spojení. Platná výchozí hodnota je 2 pro rozpoznané koncové body Azure SQL a 5 pro rozpoznané koncové body Azure Synapse a on-demand.
0 deaktivuje tyto opakované pokusy. |
Všechny verze Microsoft.Data.SqlClient |
Connect Retry Interval |
10 sekund | Nastavuje zpoždění před pozdějšími pokusy o počáteční připojení nebo obnovení po nečinnosti. Platné hodnoty jsou od 1 do 60 sekund. | Všechny verze Microsoft.Data.SqlClient |
První pokus při obnově připojení je okamžitý.
Connect Retry Interval platí i pro následující pokusy. Pro obejití vestavěného počátečního otevřeného pokusu pro jednu operaci použijte otevřené přetížení s OpenWithoutRetry.
Tato klíčová slova nezkoušejí znovu příkaz, který selže, zatímco běží. Použijte konfigurovatelnou logiku opakovaného pokusu pro vlastní politiku otevření nebo příkazů. Příkazy k opakování zkoušejte jen tehdy, když je bezpečné opakovat jejich efekty.
Možnosti identity serveru a certifikátů
Tyto možnosti splňují specifické požadavky na pojmenování certifikátů nebo v systému Kerberos. Nenahrazují běžnou autentizaci a ověřování certifikátů.
| Keyword | Výchozí | Behavior | Version |
|---|---|---|---|
Host Name In Certificate |
Název hostitele serveru | Poskytuje očekávaný obecný název (CN) nebo alternativní název subjektu (SAN), pokud připojení používá alias DNS, který se liší od názvu uvedeného v certifikátu. | Microsoft. Data.SqlClient 5.0 a novější verze |
Server Certificate |
Empty | Poskytuje soubor PEM, DER nebo CER, který musí přesně odpovídat certifikátu serveru, když Encrypt=Mandatory nebo .Encrypt=Strict |
Microsoft. Data.SqlClient 5.1 a novější verze |
Server SPN |
Odvozeno z názvu serveru | Přepíše název instančního objektu služby (SPN) používaný pro integrované ověřování vůči primárnímu serveru. Konfigurujte ho pouze tehdy, když nasazené pojmenování Kerberosu vyžaduje explicitní SPN. | Microsoft. Data.SqlClient 5.0 a novější verze |
Failover Partner SPN |
Odvozeno od failover partnera | Přepisuje SPN jako partnera pro zrcadlení databáze. Zrcadlení databází je zastaralá funkce. Používejte skupiny dostupnosti pro nové nasazení. | Microsoft. Data.SqlClient 5.0 a novější verze |
Host Name In Certificate mění název používaný pro párování certifikátů. Nedůvěřuje nedůvěryhodnému vydavateli.
Server Certificate je vázán na konkrétní soubor certifikátu a při obměně tohoto certifikátu vyžaduje aktualizaci aplikace.
Nesprávné přepsání SPN může zabránit autentizaci Kerberosu nebo oslabit zamýšlenou kontrolu identity. Opravte registraci DNS a SPN místo nastavování přepsání, pokud je to možné.
Udržujte spojovací řetězce malé. Přidej možnost jen tehdy, když můžeš uvést, jaké chování se mění a jak workload toto chování ověřuje.
Zkontrolujte změny možností
Před změnou možnosti ve výrobě:
- Zaznamenejte aktuální připojovací řetězec, verzi ovladače, typ koncového bodu a zjištěný problém.
- Měňte jedno chování po druhém.
- Otestujte navázání spojení, autentizaci, ověřování certifikátů, poolování, failover, rušení a provádění dotazů.
- Měřte pevná připojení, čekání na pool, latenci připojení a chybová čísla.
- Potvrďte nastavení na každé nasazené instanci.
Spojovací řetězce jsou součástí klíče poolu. Postupné nasazení může dočasně vytvořit jak staré, tak nové pooly, což zvyšuje celkový počet fyzických databázových připojení.