facebook LinkedIN LinkedIN - follow
IT SYSTEMS 7-8/2021 , ITSM (ITIL) - Řízení IT , Trendy ICT

Jak optimalizovat technologii Microsoft SQL Server, na které stojí byznys největších e-commerce firem?

David Hlaváček


Na technologii Microsoft SQL Server spoléhá většina českých firem. V dnešní době, kdy se bez perfektně vyladěného systému neobejde prakticky žádný větší byznys, se hraje především na rychlost a spolehlivost – dlouhá odezva, nebo dokonce výpadek e-shopu může znamenat ztrátu tisíců zákazníků. Firmy, a to nejen ze světa e-commerce, si toto velmi dobře uvědomují a optimalizaci systému věnují stále více pozornosti.


Microsoft SQL Server je extrémně komplexní systém obsahující celou řadu funkcí a komponent. Každý zákazník jej využívá svým specifickým způsobem, který je závislý na provozovaném softwarovém řešení. Těch je nepřeberné množství, počínaje krabicovými ERP, na míru přizpůsobenými systémy, až po vlastní interní vývoj. To do velké míry ovlivňuje komplexnost celé databázové architektury. K tomu ještě přidejme možnosti zajištění vysoké dostupnosti, disaster recovery, požadavky na škálování výkonu, AI/ML řešení, Big Data, a rázem máme systém, jehož správa vyžaduje tým seniorních administrátorů.

Kvalitní monitoring a analytika jsou základ

Optimalizace začíná zpravidla monitorováním, analýzou výsledků a celého databázového systému. Je třeba identifikovat úzká hrdla a zaměřit se na jejich odstranění nebo minimalizaci jejich negativního dopadu. Zdroj výkonnostního problému může být doslova na každé úrovni systému. Může jít o poddimenzovaný hardware, neoptimální konfiguraci systému a databází, zanedbanou údržbu, problémy na úrovni aplikace se špatným návrhem databáze, kvalitu dotazů a procesů a nespočet dalších potíží.

Analyzování výsledků monitorování a identifikace zdroje problému je přitom vysoce odborná činnost. Nejde jen o znalost významu stovek čítačů a jejich doporučených hodnot, ale také o znalost architektury a vnitřního fungování SQL Serveru. Uvedu příklad. Výsledky monitorování ukazují, že podstatná část aplikačních dotazů čeká na čtení dat z datových souborů, které jsou umístěny na disku. Latence čtecích IO operací je vysoce nad doporučované hodnoty. Méně zkušený specialista by na základě těchto informací došel k závěru, že problém je ve výkonu disků, na kterých jsou datové soubory umístěny. To je zcela logický závěr a stojí za prověření. Z praxe ovšem víme, že v podobné situaci je mnohem častější příčinou nedostatek paměti. Procesované dotazy přistupují k datům z tabulek uložených v paměti. Pokud je paměti nedostatek, musí SQL Server provádět časté čtení dat z disku, která umístí do paměti pro konkrétní dotaz. Jiný dotaz oproti tomu potřebuje jiná data, musí tedy dojít k uvolnění paměti a načtení jiných dat opět z disku.

Vyladěný systém? Úspora na odbavení jedné zásilky se počítá až v minutách

E-commerce byznys je v dnešní době extrémně závislý na rychlosti a maximálním vyladění všech procesů. Okamžitý efekt proto firmy většinou očekávají i v IT. Návratnost optimalizace je sice vždy individuální, ze zkušenosti však vím, že je často až extrémně rychlá. Celkem nedávno mě zákazník z logistického byznysu informoval, že v případě výkonnostních problémů aktuálního ERP systému trvá nachystání jedné zakázky ve skladu až 6 minut.

Pokud to dáme do kontextu nutnosti expedice několika tisíc zakázek denně a faktu, že je letní okurková sezona, zjistíme, že dochází k umělému snižování vyřízení objednávek z důvodu výkonnostních problémů, což má bezesporu vliv na obrat firmy. Pokud by k něčemu takovému došlo v listopadu nebo v prosinci, kdy je objem zakázek několikanásobný, dopad by byl mnohem dramatičtější. Jinými slovy náklady na optimalizaci jsou v mnoha případech zanedbatelné oproti možným dopadům v případě nefunkčního firemního procesu.

Optimalizace MS SQL Serveru je nikdy nekončící proces

Svět databázových systémů je velmi dynamické prostředí. V podstatě neustále dochází ke změnám, které mají na výkon dotazů vliv. Práce uživatelů a provoz firmy generují nové objemy dat, mění data stávající, dochází k rozvoji systémů o novou funkčnost. Optimalizace je v podstatě nikdy nekončící proces. Pokud k provozování důležitého databázového systému chceme přistupovat zodpovědně, měli bychom mít implementovaný monitoring, pomocí kterého identifikujeme měnící se trendy a vzájemné souvislosti.

Pro příklad – identifikujeme významné množství dotazů z životního cyklu firemního procesu a dáme jejich výkon do souvislosti se změnami, které nastávají. Jak se mění výkon dotazu, pokud v tabulce bude vyšší objem dat? Co když bude se systémem pracovat o 25 % více uživatelů? Kolik požadavků je náš systém schopen odbavit a zpracovat? Proces optimalizace je často součástí přípravy na nadcházející sezonu, není proto dobré jej podcenit.

I špatně navržený systém může při malém náporu fungovat bez problémů

Výkon systému je často výrazně závislý na kvalitě provozovaného softwarového řešení. Pokud jsou tvůrci softwarového řešení profesionálové, kteří databázový systém dobře znají a při vývoji se drželi doporučených postupů, dokážou optimálním návrhem databázových objektů, dotazů a procesů předejít celé řadě výkonnostních problémů a zvýšit efektivitu až o 50 %. Takové řešení je pak radost provozovat a klade i menší nároky na správu a údržbu.

Bohužel se lze setkat i s pravým opakem, kdy vývojáři velké povědomí o fungování MS SQL Serveru nemají. To se často děje při portování databází mezi různými databázovými systémy. Pokud je tedy v databázi pouze malý objem dat, i špatně navržený systém může fungovat bez větších výkonnostních problémů. Ty se však dříve či později objeví s tím, jak objemy databázi rostou a zvyšuje se počet uživatelů a procesů.

Nejvíce problémů vzniká kvůli nedostatečné údržbě databázového systému

Asi nejčastější chybou je podceněná anebo nedostatečná údržba databázového systému. U většiny z nich přitom nejde o nic složitého. Stejně jako jezdíte s vozem na pravidelné prohlídky a vyměňujete olej, tak i databázový systém potřebuje pravidelnou údržbu, aby pak mohl pracovat spolehlivě a optimálně při odbavování uživatelských požadavků. U složitějších databázových řešení je správná údržba zcela zásadní a její zanedbání může být z výkonnostního pohledu fatální.

Obecně je však problém se vzděláváním databázových administrátorů. Škol, které by své studenty byly schopny kvalitně připravit na kariéru administrátora MS SQL Serveru, lze spočítat na prstech jedné ruky. Databázové systémy sice bývají v osnovách, často jsou to však konkurenční produkty jako MySQL, MariaDB, PostgreSQL nebo Oracle. Administrátorům MS SQL Serveru tak obvykle zbývá samostudium a případně absolvování specializovaných kurzů. Osobně bych si asi dokázal představit těsnější spolupráci středních a vysokých škol se společností Microsoft. Škola může připravovat své studenty na kariéru administrátora nebo vývojáře MS SQL Serveru, pokud bude sama disponovat kvalitními lektory. A právě jejich proškolení by mohl Microsoft pomoci zajistit. Ostatně, je v jeho vlastním zájmu mít na trhu práce dostatek odborníků na vlastní produkty, neboť je po nich stále velká poptávka – příležitost tak může dostat i šikovný junior, který se dokáže postarat o systémy menších společností s méně komplexním řešením.

Externí správa databází je stále větším trendem

To, že jsou databázové systémy kritickou součástí firemní infrastruktury, nebude pro nikoho velkým překvapením. Neoptimalizovaný databázový systém je schopen ovlivnit samotné fungování a provoz firmy. Stojí výroba, nefunguje objednávkový systém, zpomalí se logistika. Následkem toho jsou pak frustrovaní zaměstnanci, ztráta důvěry u zákazníků a partnerů, v konečném důsledku pak finanční ztráta. Stále více firem si toto naštěstí uvědomuje a snaží se podobným scénářům předejít.

Jako je tomu i v jiných oblastech, nejlepší cestou je prevence a dostatek expertů, kteří se o databázový systém postarají. Společnosti dnes stále častěji sahají po externí správě databází, tato služba se tak stává velkým trendem. Samy často nemají ambice nebo možnosti pokrýt správu databází vlastními zdroji, a proto poptávají specializované firmy, které potřebnými experty disponují. Ti jim v rámci paušálu na databáze dohlížejí, případně je rovnou spravují. Firma tak může ušetřené kapacity věnovat na rozvoj vlastního byznysu.

David Hlaváček
David Hlaváček
Autor článku je databázový expert technologické společnosti ČMIS.
Chcete získat časopis IT Systems s tímto a mnoha dalšími články z oblasti informačních systémů a řízení podnikové informatiky? Objednejte si předplatné nebo konkrétní vydání časopisu IT Systems z našeho archivu.