Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Oczywiście,działanieSQLServerjestznaczniebardziejwydajne,niżobsługawpraw-
dziwymsklepie,wktórymkliencimuszącierpliwieczekaćnazakończeniesprawdzania
ceny(klientznajdującysięnakońcukolejki
RUNNABLE
prawdopodobnieżyczyłbysobie
takiejwydajności!).
Statystykaoczekiwania
Jakpokazanonarysunku2.2,zadanie(zawyjątkiemprocesuinicjalizacjiiusuwania)
znajdujesięwjednymwtrzechstanów
RUNNING
,
SUSPENDED
lub
RUNNABLE
.Całkowityczas
wykonaniajestsumączasuspędzonegowstanie
RUNNING
,czylitakim,wktórymzadanie
jestfaktyczniewykonywane,czasuwstanie
RUNNABLE
,gdyzadanieczekanauruchomie-
nieprzezzarządcę(CPU),awreszcieczasuwstanie
SUSPENDED
,gdyzadanieoczekuje
nazasoby.
nadostępnego
Oczekujący
zarządcę
uruchomienia
Gotowydo
Oczekującynazasóblubzdarzenie
Wstrzymany
UruchomionyUruchomiony
przezzarządcę
Rysunek202Cyklżyciazadania
Zasadniczocelemkażdegoprocesudostrajaniawydajnościjestpoprawasprawnościdzia-
łaniasystemupoprzezskrócenieczasuwykonywaniazapytań.Możnatoosiągnąćpoprzez
zmniejszenieilościczasu,jakizadaniazwiązanezzapytaniamispędzająwktórymśzpo-
wyższychtrzechstanów.
Czaswstanie
RUNNING
możnaskrócićdziękimodernizacjisprzętuiużyciuszybszych
procesorówlubpoprzezzoptymalizowaniezapytań.Ilośćczasuwstanie
RUNNABLE
można
zmniejszyćpoprzezdodanieprocesorówlubzmniejszenieobciążeniasystemu.Wwięk-
szościprzypadkówuzyskasięjednaknajwiększekorzyści,jeśliskrócisięczas,któryza-
daniaspędzająwstanie
SUSPENDED
woczekiwaniunazasoby.
SQLServerdlaróżnychtypówoczekiwaniamonitorujełącznyczas,jakizadaniaspę-
dzająwstanie
SUSPENDED
.Odpowiedniedanemożnawyświetlićzapomocąwidoku
sys
.dm_os_wait_stats
(https://oreil.ly/Nh4s2),abypoznaćpodstawoweograniczeniasystemu
iulepszyćstrategięrozwiązywaniaproblemów.
Dziękikodowizlistingu2.1możnasiędowiedzieć,któretypyoczekiwaniazajmująnaj-
więcejczasuwsystemie(odfiltrowujeonniektóremniejważnetypyoczekiwaniazwiązane
główniezwewnętrznymiprocesamiSQLServer,któreprzezwiększośćczasubezczyn-
ne).DanegromadzoneodczasuostatniegorestartuSQLServerlubodmomentuich
usunięciapoleceniem
DBCCSQLPERF('sys.dm_os_wait_stats',CLEAR)
.Wkażdejkolejnej
32
|
Rozdział2:ModelwykonawczySILServeristatystykaoczekiwania