Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Rozdział2
Inteligentnawydajność
IntelligentOueryProcessing
WwydaniuSQLServer2014naszzespółinżynierskipodjąłważkądecyzjęowprowa-
dzeniunowegozestawukodudlaprocesorazapytańpodejmującegodecyzjezwiązane
zszacowaniemkardynalności(cardinalityestimationCE)zapytania.Nowy„model
CE”jeststosowany,gdybazadanychdziałanapoziomiezgodności120lubpóźniej-
szym(120jestustawieniemdomyślnymdlaSQLServer2014).Wszelkieszczegółyjego
działaniaipowodywprowadzeniatejzmianymożnaznaleźćwdokumentacjidostęp-
nejpodadresem
https://docs.microsoft.com/en-us/sql/relational-databases/
performance/cardinality-estimation-sql-server
.
Wieluużytkownikówkwestionowałosłusznośćtejdecyzji.Jednymzgłównychza-
rzutówstawianychtemupodejściubyłoto,żebyłatoobszerna,nieelastycznazmiana.
GdyzespółkończyłbudowanieSQLServer2016izaczynałplanowaniewydaniaSQL
Server2017,wszyscybylizgodni,żepotrzebujemynowegosposobutworzeniafunk-
cjonalnościprzetwarzaniazapytań.JakpowiedziałJoeSack,jedenzczołowychmene-
dżerówprogramudlakomponentuQueryProcessor(QP),„Zespółzrozumiał,żeroz-
wiązaniatypu<pasujedowszystkiego’niebyłotym,copowinniśmyrobić.Zamiasttego
powinniśmyzainwestowaćwfunkcjonalności,którebędąmogłydostosowaćsiędosze-
rokiegozakresuobciążeń,którewystępująwekosystemieSQLServer(wielkie,małe,
OLTP,hybrydowe,hurtowniedanych)”.
WtensposóbnarodziłasięnowarodzinafunkcjonalnościwSQLServer2017,ona-
zwieAdaptiveQueryProcessing(AQP).Pomysłpolegałnawbudowaniuwprocesor
zapytańzdolnościdoadaptacjiwmiaręwykonywaniazapytania(lubprzedjegoponow-
nymwykonaniem),abyzapewnićszybszewykonywaniebezjakiejkolwiekinterwencji
użytkownikaanizmianwaplikacji.
UwagaPrzykładydotycząceSQLServer2017iAQPdostępnepodadresem
https://
github.com/Microsoft/bobsql/tree/master/demos/sqlserver/aqp
.
GdyzespółwypuściłSQLServer2017iAQP,istniałjużobszernyrejestrnowychfunk-
cjonalności,którechciałdołączyćdoAQP,alezabrakłonatoczasu.Zacząłzatemwsta-
wiaćnowefunkcjeulepszająceAQPwAzureSQLServerDatabase,planującwłączenie
ichdowydaniaSQLServer2019.Cowięcej,słowoadaptacyjnynieodzwierciedlało
naprawdętejpracy,którązespółrealizował.ProcesorzapytańSQLServerodlatbył
całkiemsprytnyużywałwyrafinowanegozbiorualgorytmówbazującychnakosz-
tachdopodejmowaniadecyzjioplaniewykonania.Jednakzespółchciałwięcej;dążył
dotego,abyQPeksponowałwięcejinteligencji.StądnazwaIntelligentQueryProcessing.
21