INF: Klient efekty na SQL Server propustnosti

Překlady článku Překlady článku
ID článku: 180775 - Produkty, které se vztahují k tomuto článku.
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Vyhodnocení obecné oblasti, které ovlivňují výkon nejvíce běžně považuje aspekty jsou rychlost procesoru, I/O disku a paměti na serveru. Přestože výkon těchto částí serveru jsou klíčové pro správnou výkonu, musíte zvážit také čekací doby v síti a čas zpracování klienta jako faktory, které může také mít hlavní dopad na celkový výkon systému.

Tento článek pojednává o druhém oblasti a poskytuje pokyny pro vyhodnocení jaký vliv může mít na serveru.

Další informace

Následující příklad bude použit v celém dokumentu. Kroky pro dvě připojení provést stejné aktualizace s právě malý rozdíl v syntaxi Transact-SQL.

Připojení 1

use pubs
go
select convert(char(30), GetDate(), 9) "Start Time"
go

            Begin transaction

   Go   ==>   Send to SQL Server and process results

            Update authors set au_lname = au_lname

   Go   ==>   Send to SQL Server and process results

Commit / Rollback transaction

   Go   ==>   Send to SQL Server and process results

select convert(char(30), GetDate(), 9) "End Time"
go
				

Připojení 2

use pubs
go
select convert(char(30), GetDate(), 9) "Start Time"
go
begin transaction
if(0 = @@ERROR)
begin
   update authors set au_lname = au_lname
   if(0 = @@ERROR)
   begin
      commit transaction
   end
   else
   begin
      rollback transaction
   end
end
go    ==>   Send to SQL Server and process results
select convert(char(30), GetDate(), 9) "End Time"
go
				

Sítě round trips

Připojení 1 vyžaduje tři cest k počítači se serverem SQL:
  • Begin Transaction
  • Aktualizace
  • Potvrdit / odvolací transakcí
Připojení 2 vyžaduje jeden výlet dokončete aktualizaci.

Zrušení dotazu

Knihovny DB a ODBC API podporují zpracování asynchronní dotazu. DB-Library například pomocí funkce dbdataready povolit klienta dotazování stav dokončení dotazu.

DB-Library je funkce dbdataready řízena hodnotu DataReadySleep. Další informace o klíči registru DataReadySleep naleznete v následujícím článku databáze Microsoft Knowledge Base:
159234: INF: Jak změnit hodnotu spánku používaná Dbdataready

Jak spánek Times vliv časování

Ve výchozím režimu spánku hodnota je 250 milisekund.

Připojení 1 umožňuje tři kulaté cest k serveru SQL. Ve výchozím klienta narazí minimální 750 milisekundách dobu čekání nepočítají čas pro přenos skutečné sítě. Čekací doba se počítá z (250 milisekund * 3) = 750 milisekund.

Připojení 2 vytvoří jediný výlet a narazí minimální 250 milisekund čekací dobu nepočítají čas přenosu skutečné sítě.

Změnit rychlost Tento příklad koeficientem třech, jednoduše výhod syntaxe Transact-SQL a odebráním dvě sítě round cest.

Jak Roundtrips ovlivňují ostatní uživatelé sítě

Připojení 1 uchovává transakce otevřené minimálně 500 milisekund. Po otevření transakce trvá 500 milisekund dokončete aktualizaci a potom potvrďte nebo vrácení transakce. Souběžnosti databáze brání ostatním uživatelům v přístupu k záznamy upravujete.

Připojení 2 udržuje transakce otevřené pouze tak dlouho jako potřeby k dokončení operace. Do 133 MHz Pentium jeden procesor počítače se systémem SQL Server a ISQL/w jsou vidět následující časování.

Poznámka: Konečné I/O sítě není zobrazeno v obou následujících příkladech. Po dokončení potvrzení nebo vrácení zpět uzamčení jsou uvolněny, ale konečné I/O nebudou zaznamenány.
   Begin transaction                5 milliseconds
   Update                          20 milliseconds
   Commit/Rollback transaction      7 milliseconds
      TOTAL                        32 milliseconds
				

Zatímco Connection 1 vyžaduje mnohem větší okno zpracování a významně rozšiřuje transakce čekací doba v milisekundách přibližně 32 dokončí připojení 2.
   Begin transaction                5 milliseconds
   Network I/O                    250 milliseconds
   Update                          20 milliseconds
   Network I/O                    250 milliseconds
   Commit/Rollback transaction      7 milliseconds
      TOTAL                       532 milliseconds
				

Jak je uvedeno výše, čas sítě je jednoduchý faktor třech. Uzamčení dopad, které tato na jiné uživatele databáze používá v příkladu je však faktor 16 (532/32 = ~ 16).

Nyní předpokládejme, že je jednoduchý příklad ze vzdáleného připojení modemu 28.8 přenosného počítače. Kromě 250 milisekund zpoždění vynucená parametr dbdatareadysleep, dobu trvání ve skutečnosti přenosu informací přes pomalé připojení je appreciable. Připojení 1 by ovlivnit ostatní uživatele databáze podle dokonce větší koeficient, zatímco připojení 2 by především ovlivněny rychlost klientského počítače. Příkaz je odeslána jednou, zpracována na serveru SQL v milisekundách 32. Pouze uživatel systému dojde zpomalení je vzdálený uživatel je podle očekávání kvůli pomalé modemu.

Prodleva čas klienta

Prodlevu klienta je období času uplyne během Klient zpracuje výsledky, které obdržel. Pokud znovu prohlédnout Connection 1, můžete rychle zobrazit to vliv procesu. Pokud navíc 10 milisekund jsou potřebné pro klienta na zpracování sady výsledků, můžete přidat jiné 30 milisekund celkového času transakce a ještě jiné 20 milisekund čekací dobu transakce.

Řekněme přepnout příklady znovu. V tomto případě je tabulka zásob z online systému. Stráveného měsíců vývoj a co by měla být systém nejrychleji online pořadí zpracování v historii instalace. Uživatelé mohou hledat, koupit a zachovat nákupního košíku mezi další možnosti. Tato tabulka tbllnventory je:
   tblInventory
      iProductID       int
      strTitle         varchar(50)
      strDescription   varchar(255)
      iSize            int
      iInStock         int
      iOnOrder         int
      iType            int
				

Chcete zakoupit některé cereal. Však ChtĚl bych v tématu Co je k dispozici. Cereal psaní 2, jsme můžete definovat tak, aby aplikace problémy následující dotaz. V tomto příkladu obsahuje databázi 750 cereal související položky.
   Select strTitle, strDescription, iSize, iInStock from tblInventory
   where iType = 2
				

SQL Server bude kompilace a analyzovat dotaz a začněte vrátí výsledky. Sdílené uzamčení jsou získali na příslušné stránky. Mějte na paměti, které sdílené zámky bloku aktualizaci, vložení a operace odstranění.

Současně protože je používána aplikace celonárodní, šest osoby se pokoušíte umístit cereal objednávek.

SQL Server vyplní první datový proud (TDS) paketu tabulková data, odešle klientovi a potom čeká klientský proces výsledky. Během doby klient zpracování výsledků (čas klienta čekací doba), SQL Server nadále podržte uzamčení sdílené stránky na stránce, kde bylo zpracování. Tento sdílený zámek můžete blokovat uživatele, který se pokouší dokončete objednávku.

Zdá jako jednoduchý akce. Vyberte sadu výsledků ze serveru SQL a vložte hodnoty do seznamu. Počítač Pentium 133 MHz můžete přidat 750 položky seznamu v právě přes jedna sekunda. Zakázání seznamu při ji archivujete trvá pouze jednu třetinu sekundy. Jednoduše zakázáním seznamu může výrazně snížit čas klienta čekací doby.

Dokonce pravděpodobně inclined změnit vyberte operaci ještě dále zmenšit uzamčení. Sdílený zámek expozice omezit změnou dotazu následující.
   Insert * into #tblSelect from
   Select strTitle, strDescription, iSize, iInStock from tblInventory
				

   Select * from #tblSelect
				

Dotaz izolované na serveru SQL a nespustí, dokud byly přesunuty do dočasné tabulky a všechny sdílené uzamčení jsou vydány z tabulky zásob vracení výsledků. To omezuje čas sdílené uzamčení jsou uchovávány v tabulce skladu na čas potřebný pro SQL Server k přesunutí databáze tempdb výsledky. Ovládací prvek je znovu s databázi a není klienta.

Jiným způsobem, jak provádět podobné chování je "inteligentní" klienta. Namísto vyplňování pole se seznamem může být rychlejší načíst matici. Však máte přesto pochybnosti o právě vázán propustnost sítě. Dočasné tabulky je lepší řešení v těchto situacích.

Jak můžete vidět klienta přehrát pivotal role v databázi propustnost. Měli byste být opatrní, zejména při práci s vykazování a vzdálené systémy. Množství času klienta trvá zpracování výsledků při stisknuté zámky má potenciální dopad propustnost databáze. Tyto typy problémů může být obtížné vidět sp_who uložené procedury a pevný viz jako období čekací doba může být časování 100 milisekund. Použít pomalé propojení rychle zobrazit chování. Spuštění aplikace z propojení RAS a zobrazit celkovou chování je jako. Můžete také využít výhod nástroj trasování SQL pečlivě profil aplikace.

Další informace naleznete v následujících článcích znalostní báze Microsoft Knowledge Base:
165951: INF: výsledek zpracování pro SQL Server

172117: INF: postup Transact-SQL kód profilového v uložených procedur a aktivace

162361: INF: vysvětlení a řešení potíží blokování SQL Server

167610: INF: vyhodnocování zpomalení výkonu dotazu

48712: INF: zpracování časové limity správně v knihovně DB

117143: INF: důvody a použití dbcancel() nebo sqlcancel()

Vlastnosti

ID článku: 180775 - Poslední aktualizace: 10. února 2014 - Revize: 3.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 6.5 Standard Edition
Klíčová slova: 
kbnosurvey kbarchive kbmt kbinfo KB180775 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:180775

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com