Prihláste sa s kontom Microsoft
Prihláste sa alebo si vytvorte konto.
Dobrý deň,
Vyberte iné konto.
Máte viacero kont
Vyberte konto, s ktorým sa chcete prihlásiť.

Súhrn

Použijete SQL Server ovládač ODBC a SQL Server OLE DB provider System.Data.SqlClient spravovaný poskytovateľ môžete zakázať združovanie použitím príslušných rozhraní (API). Ak vypnete, zhromažďovanie, dôraz na základné SQL Server siete knižnica sa môže zvýšiť, ak aplikácie často otvára a zatvára pripojenia. Tento článok popisuje niektoré TCP, musíte nastaviť v týchto podmienkach.

Ďalšie informácie

Vypnutie združovanie môže spôsobiť SQL Server siete motívom rýchlo a nový soket pripojenia k počítaču s programom SQL Server. Budete musieť zmeniť predvolené nastavenia protokolu TCP/IP zásuvky pre operačný systém a počítač so serverom SQL Server riešiť vyššieho zaťaženia.

Všimnite si, že tento článok sa zaoberá iba nastavenia, ktoré ovplyvňujú SQL Server siete knižnice pri používaní protokolu TCP/IP. Vypnutie združovanie môže tiež spôsobiť problémy s iné protokoly SQL Server napríklad pomenované presmerovanie zaťaženia, ale tento článok sa nezaoberá tejto téme. Tento článok je len pre pokročilých používateľov. Ak nerozumiete témy v tomto článku, spoločnosť Microsoft odporúča, že vidíte dobrá kniha o TCP/IP sockets.

Všimnite si, že spoločnosť Microsoft odporúča vždy používať spojenie s ovládačmi SQL Server. Pomocou združovanie výrazne zvyšuje výkon na strane klienta a servera SQL Server, pri použití SQL Server ovládače. Pomocou združovanie tiež výrazne znižuje sieťové prenosy do počítača s programom SQL Server. Vzorový test, ktorý používa 20000 SQL Server pripojenie sa otvára a zatvára s zaraďovanie povolené používať napríklad o 160 sieťové pakety protokolu TCP/IP, celkom 23,520 bajtov sieťová aktivita. So zlúčením vypnutá, rovnaký test vzorky generuje 225,129 sieťových paketov TCP/IP celkom 27,209,622 bajtov sieťová aktivita.

Všimnite si, že ak tieto zaťaženia problémy týkajúce sa protokolu TCP/IP zásuvky knižnice SQL Server, sa môže zobraziť niektoré z nasledujúcich chybových hlásení pri pokuse o pripojenie k počítaču s programom SQL Server:

SQL Server neexistuje alebo prístup bol odmietnutý

Uplynul časový limit

Všeobecné chyby siete

TCP poskytovateľ: Zvyčajne je povolené len jedno použitie každej adresy soketu (protokolu, sieťovej adresy, portu).

Všimnite si, že aj získate tieto chybové hlásenia výskytu iné problémy so serverom SQL Server, napríklad sa môže zobraziť nasledujúce chybové hlásenia vypnutia vzdialeného počítača s programom SQL Server, ak vzdialený počítač so serverom SQL Server nereaguje na protokolu TCP/IP sockets, ak pripojenie k počítaču s programom SQL Server nefunguje, pretože sieťový kábel je stiahnutá alebo ak sa vyskytnú problémy s rozlíšením servera DNS. V podstate všetko, čo môže spôsobiť, že klient sa nedajú otvoriť soket protokolu TCP/IP do počítača s programom SQL Server môže tiež spôsobiť chybové hlásenia. Však napätie súvisiace soketu problém, problém sa vyskytuje prerušovane napätie zvyšuje a patrí. Počítač môže pracovať hodiny bez chýb a potom chyba sa vyskytne jeden alebo dva krát a počítač potom spustí niekoľko hodín bez chýb. Aj keď máte tento problém, všeobecné pripojenia k serveru SQL Server pracuje v jednom okamihu, nedokáže ďalej a znova pracuje v nasledujúcom okamihu. Inými slovami, Konvertory napätie súvisiace problémy sa zvyčajne vyskytujú zriedkavo, ale skutočné problémy s pripojením SQL Server zvyčajne nevyskytujú zriedkavo.

Dve hlavné otázky týkajúce sa zaťaženia vyskytnúť, ak vypnete, zhromažďovanie pri používaní protokolu TCP/IP servera SQL: môžete spustiť z anonymného porty na klientskom počítači, alebo môže presiahnuť WinsockListenBacklog nastavenie v počítači so serverom SQL Server.


Ďalšie informácie o portoch anonymné, po kliknutí na nasledovné číslo článku publikovaného v databáze Microsoft Knowledge Base:

319502 PRB: "WSAEADDRESSINUSE" chybové hlásenie pri pokuse o pripojenie cez anonymný po zvýšení limitu pripojenia IMAP

Nastavenie MaxUserPort a TcpTimedWaitDelay

Všimnite si, že MaxUserPort a TcpTimedWaitDelay nastavenia sa vzťahujú iba na klientskom počítači, ktorý je rýchlo otváranie a zatváranie pripojenie k vzdialenému počítaču so systémom SQL Server a nie pomocou združovanie. Napríklad, tieto nastavenia platia na server Internet Information Services (IIS), ktoré obsluhuje veľký počet prichádzajúcich požiadaviek HTTP a je otváranie a zatváranie pripojenie k vzdialenému počítaču so systémom SQL Server a ktorý používa protokol TCP/IP s združovanie zakázané. Ak je zapnuté združovanie pripojení, nemáte nastavenie MaxUserPort a TcpTimedWaitDelay .

Pri používaní protokolu TCP/IP na pripojenie k počítaču s programom SQL Server, základné SQL Server siete knižnica otvorí soket protokolu TCP/IP do počítača s programom SQL Server. Pri otvorení tejto zásuvky, SQL Server siete knižnica neumožňuje SO_REUSEADDR možnosti pre soket protokolu TCP/IP. Ďalšie informácie o nastavení soket SO_REUSEADDR téme "Setsockopt" v Microsoft Developer Network (MSDN).


Všimnite si, že SQL Server siete knižnica konkrétne neumožňuje možnosť SO_REUSEADDR TCP/IP zásuvky z bezpečnostných dôvodov. SO_REUSEADDR zapnuté, používateľ môže uniesť portu klienta na server SQL Server a použiť poverenia, ktoré klient poskytuje prístup k počítaču s programom SQL Server. Predvolene pretože SQL Server siete knižnica neumožňuje možnosť soket SO_REUSEADDR každom otvorení a zatvorení soket prostredníctvom servera SQL Server siete knižnice na strane klienta soketu zadá TIME_WAIT štátu štyri minúty. Ak sa rýchlo otvorenie a zatvorenie pripojenia servera SQL Server cez protokol TCP/IP spojenie vypnuté rýchlo otvorenie a uzavretie protokolu TCP/IP sockets. Inými slovami, každé pripojenie servera SQL Server má jeden soket protokolu TCP/IP. Ak rýchlo otvorení a zatvorení 4000 soketov najmenej štyroch minút sa dosiahne maximálna nastavenie klientske porty na anonymné a nový soket pripojenie nepodarí do existujúceho súboru TIME_WAIT zásuvky časový limit.

Na strane klienta, budete musieť zvýšiť MaxUserPort a TcpTimedWaitDelay nastavenia, ktoré sú popísané v Q319502, ak je zdieľanie zakázané. Nastavenie týchto hodnôt závisí od počtu pripojenie servera SQL Server otvára a zatvára sa vyskytujú na strane klienta. Môžete zistiť, koľko klientske porty sa v TIME_WAIT stave pomocou nástroja Netstat v klientskom počítači. Spustite nástroj Netstat -n príznakom takto a počet zásuvky klienta na adresu IP servera SQL, sa v TIME_WAIT stave. V tomto príklade je 10.10.10.20 adresa IP vzdialeného počítača s programom SQL Server a adresa IP klienta je adresa 10.10.10.10 tri nadviazať spojenie a dvoch sa v TIME_WAIT stave:

C:\>netstat -n
Active Connections

Proto Local Address Foreign Address State
TCP 10.10.10.10:2000 10.10.10.20:1433 ESTABLISHED
TCP 10.10.10.10:2001 10.10.10.20:1433 ESTABLISHED
TCP 10.10.10.10:2002 10.10.10.20:1433 ESTABLISHED
TCP 10.10.10.10:2003 10.10.10.20:1433 TIME_WAIT
TCP 10.10.10.10:2004 10.10.10.20:1433 TIME_WAIT

Ak spustíte netstat -n , zistíte, že takmer 4000 pripojenie na adresu IP cieľového počítača so systémom SQL Server sa v TIME_WAIT stave môžete aj zvýšiť nastavenie MaxUserPort a znížiť nastavenie TcpTimedWaitDelay tak, že sa nespustí z klienta anonymný porty. Napríklad môžete nastaviť MaxUserPort na 20000 a nastavenie TcpTimedWaitDelay do 30. Znížte TcpTimedWaitDelay znamená, že či zásuvky čakať v stave TIME_WAIT kratší čas. Vyššie nastavenie MaxUserPort znamená, že máte viac zásuvky v TIME_WAIT stave.

Všimnite si, že ak je nastavenie MaxUserPort alebo TcpTimedWaitDelay , musíte reštartovať Microsoft Windows nové nastavenie sa prejaví. Nastavenie MaxUserPort a TcpTimedWaitDelay sú pre všetky klientskeho počítača, ktorý hovorí k počítaču so systémom SQL Server cez TCP/IP zásuvky. Tieto nastavenia nemajú vplyv, ak sú nastavené na počítači, ktorý je spustený server SQL Server, ak chcete vytvoriť lokálne pripojenie TCP/IP zásuvky do lokálneho počítača, ktorý je spustený server SQL Server.

Poznámka: Ak je nastavenie MaxUserPort , odporúčame rezerváciu port 1434 použiť službu SQL Server Browser (sqlbrowser.exe). Ďalšie informácie o tom, ako to urobiť, kliknite na nasledovné číslo článku publikovaného v databáze Microsoft Knowledge Base:

812873 ako si rezervovať rozsah nestále portov na počítači so systémom Windows Server 2003 alebo Windows 2000 Server

Nastavenie WinsockListenBacklog

Ďalšie informácie o toto nastavenie databázy registry špecifické pre SQL Server nájdete po kliknutí na nasledovné číslo článku publikovaného v databáze Microsoft Knowledge Base:

154628 INF: SQL denníky 17832 viacerých žiadostí o pripojenie TCP
Keď SQL Server siete knižnica načúva TCP/IP sockets, SQL Server siete knižnica používa vypočuť Winsock API. Druhý parameter vypočuť API je počet nevybavených povolený pre zásuvky. Toto oneskorenie predstavuje maximálnu dĺžku frontu do pripojenia prijímač. Keď dĺžka frontu presahuje túto maximálnu dĺžku, SQL Server siete knižnica okamžite odmieta ďalšie pokusy o pripojenie soket protokolu TCP/IP. Okrem toho SQL Server siete knižnica odošle paket ACK + hesla.

SQL Server 2000 používa predvolené vypočuť nevybavených nastavenie 5. To znamená, že počítač so systémom SQL Server prechádza hodnotu 5 vypočuť Winsock API parameter oneskorenie pri vypočuť API nastavuje protokol TCP/IP počúvania vlákna v počítači so serverom SQL Server. Môžete upraviť kľúč databázy registry WinsockListenBacklog zadať inú hodnotu preniesť tohto parametra. Spustenie programu SQL Server 2005, sieť knižnica prechádza hodnota SOMAXCONN oneskorenie nastavenie vypočuť API. SOMAXCONN umožňuje poskytovateľovi Winsock nastaviť maximálne zmysluplnú hodnotu pre toto nastavenie. Preto je kľúč databázy registry WinsockListenBacklog už používa alebo v SQL Server 2005.

Počet nastavenia funguje takto: Predpokladajme, že ľubovoľné službu načúva pre prichádzajúce požiadavky soket protokolu TCP/IP. Ak je nastavenie oneskorenie 5 a veľa požiadaviek pripojenie soketu sa neustále vysielanie v služby nie možné reagovať na prichádzajúce požiadavky tak rýchlo, ako prídu. V tomto bode vrstva soket protokolu TCP/IP fronty tieto prichádzajúce požiadavky vo fronte oneskorenie a služba je neskôr vytiahnite požiadavky z tohto frontu spracovať prichádzajúce požiadavky pripojenia zásuvky. Po fronte naplní, vrstva soket protokolu TCP/IP okamžite odmieta ďalšie Konvertory požiadavky, ktoré zaslaním ACK + RESET paketov späť klientovi. Zvýšenie oneskorenie front zväčšujúcim nevybavených zásuvkou vyžaduje, aby vrstva soket protokolu TCP/IP fronty pred požiadavky sú odmietnuté.

Všimnite si, že WinsockListenBacklog nastavenie špecifické pre SQL Server. SQL Server sa pokúša čítať toto nastavenie databázy registry pri prvom spustení služby SQL Server. Ak nastavenie neexistuje, použije sa predvolené 5. Nastavenie databázy registry existuje, SQL Server načíta nastavenie a používa hodnotu poskytnutej oneskorenie pri WinSock API vypočuť sa nazýva ako TCP/IP zásuvky počúvania vlákna sa vnútri SQL Server.

Zistiť, či používate na tento problém, môžete spustiť sledovanie siete sledovania klienta alebo počítača s programom SQL Server a vyhľadajte soketu pripojenia požiadavky, ktoré sa okamžite odmietol ACK + resetovaním. Pri kontrole paketov TCP/IP sledovanie siete, zobrazí paketov, napríklad výskytu tohto problému:

Frame: Base frame propertiesETHERNET:  EType = Internet IP (IPv4) 
IP: Protocol = TCP - Transmission Control; Packet ID = 40530; Total IP Length = 40; Options = No Options
TCP: Control Bits: .A.R.., len: 0, seq: 0-0, ack:3409265780, win: 0, src: 1433 dst: 4364
TCP: Source Port = 0x0599
TCP: Destination Port = 0x110C
TCP: Sequence Number = 0 (0x0)
TCP: Acknowledgement Number = 3409265780 (0xCB354474)
TCP: Data Offset = 20 bytes
TCP: Flags = 0x14 : .A.R..
TCP: ..0..... = No urgent data
TCP: ...1.... = Acknowledgement field significant
TCP: ....0... = No Push function
TCP: .....1.. = Reset the connection
TCP: ......0. = No Synchronize
TCP: .......0 = Not the end of the data
TCP: Window = 0 (0x0)
TCP: Checksum = 0xF1E7
TCP: Urgent Pointer = 0 (0x0)

Všimnite si, že zdrojový port 0x599 alebo 1433 v desiatkovom formáte. To znamená, že paket pochádza typickom počítači so systémom SQL Server a ktorý používa predvolený port 1433. Všimnite si, významné pre pole potvrdenia a obnovenie pripojenia príznaky sú nastavené. Ak poznáte filtrovanie stopy sledovanie siete, filtrovať možno príznaky TCP hodnotu 0x14 šestnástková zistiť len ACK + obnoviť pakety Network Monitor sledovania.

Všimnite si, že aj vidíte podobné ACK + obnoviť pakety počítača s programom SQL Server nie je spustený na všetkých či počítača s programom SQL Server nereaguje na protokol TCP/IP tak vidieť ACK + obnoviť pakety nie je potvrdenie, že máte tento problém. Nedostatok WinsockListenBacklog sa niektoré pripojenie pokusy Zobraziť prijať pakety a niektoré pripojenia obdržíte pakety ACK + obnoviť v rovnakom čase.

Všimnite si, že vo veľmi zriedkavých prípadoch, budete musieť upraviť toto nastavenie, aj v prípade, že zaraďovanie zapnuté klientske počítače. Ak hovorí mnohých klientske počítače na jednom počítači, ktorý je spustený server SQL Server, veľký počet súčasne prichádzajúce pokusy o pripojenie môže vyskytnúť napríklad v určitom okamihu aj v prípade, že je zapnuté združovanie pripojení.

Poznámka: Ak je nastavenie WinsockListenBacklog , nemáte reštartovať systém Windows, toto nastavenie sa prejaví. Len Zastavte a reštartujte službu SQL Server nastavenia prejavili. Nastavenie databázy registry WinsockListenBacklog je iba počítač so serverom SQL Server. Nemá žiadny vplyv na všetky klientskeho počítača, ktorý hovorí SQL Server.

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.

Boli tieto informácie užitočné?

Aká je podľa vás jazyková kvalita textu?
Čo sa vám páčilo, prípadne čo nie?
Stlačením tlačidla Odoslať sa vaše pripomienky použijú na zlepšenie produktov a služieb spoločnosti Microsoft. Váš správca IT bude môcť tieto údaje zhromažďovať. Vyhlásenie o ochrane osobných údajov.

Ďakujeme za vaše pripomienky!

×