Po více než čtvrt století od uvedení původního SQL Serveru představila společnost Microsoft některé nové funkce přicházející s chystaným produktem SQL Server 2019.

Ten navazuje na předloňský SQL Server 2017. A co je v něm nového? Přestože vývoj ještě zdaleka není u konce, jisté je, že pokrok souvisí zejména s vyšším výkonem, zabezpečením a adaptací na nejnovější normy v oblasti legislativy. Údajně se také má zlepšit dostupnost databáze a Microsoft slibuje celkově zvýšit produktivitu vývojářů. Technicky detailnější obraz této nadcházející databázové platformy se objevil teprve až v první veřejné ukázce technologií SQL Serveru 2019. Toto jsou ty nejzajímavější z nich.

Inteligentní zpracování dotazů

Nová sada inteligentního zpracování dotazů je především určena k nápravě některých běžných problémů s malým výkonem při zpracování databázových dotazů, a to tak, že již během samotného procesu aplikuje určité automatické korekční postupy. Za tímto účelem využívá zpětnou vazbu založenou na statistikách shromážděných z minulých zpracování. Společnost Microsoft již začala využívat některé z těchto funkcí v databázi Azure SQL a díky zatím přesvědčivým výsledkům plánuje tuto funkcionalitu rozšířit také do SQL Serveru 2019.

Podpora trvalé paměti

Ve vydání 2019 společnost Microsoft podle dostupných informací vylepšila podporu tzv. trvalé paměti (Persistent Memory Support). Té je dosaženo díky optimalizované I/O trase, která nově umí komunikovat přímo s úložištěm trvalé paměti. Když je nějaký databázový soubor umístěn na zařízení s trvalou pamětí, umožňuje to SQL Serveru přistupovat k danému zařízení napřímo, aniž by tak musel činit prostřednictvím úložiště operačního systému. Tím je v podstatě dosaženo lepšího výkonu a nižší latence I/O, aniž by se ve skutečnosti změnil design databáze.

Skupiny Always On dostupnosti

Microsoft prvně představil skupiny Always On dostupnosti v SQL Serveru 2012 a od té doby provádí vylepšení této funkce v každé další verzi. Jedna z největších bolestí, na kterou si většina databázových specialistů stěžovala, spočívá v neexistující podpoře pro systémové MSDB a Master databáze, které obsahují přihlášení, úkoly, plány a oznámení SQL Server Agenta. K vyřešení tohoto problému vznikla řada alternativních nástrojů vytvořených komunitou, například DBATools, který běží na bázi PowerShell a uchovává přihlášení a úkoly synchronizované mezi uzly členů skupiny dostupnosti.

V SQL Serveru 2019 Microsoft opravuje tento problém pro Master i MSDB databáze, což zjednoduší správu skupin dostupnosti. Dalším novým prvkem je schopnost mít až pět synchronních replik, na rozdíl od předchozího limitu tří. Ve své skupině dostupnosti můžete mít dohromady až devět replik s možností jejich počet ještě navýšit prostřednictvím distribuovaných skupin dostupnosti.

Podpora UTF-8

Společnost Microsoft dále uvádí podporu UTF-8, která poskytuje uživatelům širší možnosti pro ukládání dat. S tímto vylepšením můžete komprimovat stávající znaková data bez psaní dodatečného kódu, což prý pomáhá uspořit až 50 procent znakových dat. Zároveň ale můžete použít i externí software pro kompresi existujících dat do formátu UTF-8.

Zrychlené obnovení databáze

Pokud jste někdy přerušili dlouhotrvající transakci a poté nekonečně dlouho čekali, až se tato transakce vrátí zpět, bude právě tato funkce pro vás velmi užitečná. Dřívější proces SQL Serveru fungoval na principu identifikace nejstaršího pořadového čísla protokolu (LSN), poté zahájil fáze zpětného chodu a opakování procesu od začátku. Zpětná fáze v podstatě zopakovala všechny kroky uvedené v souboru protokolu transakcí, pouze v opačném směru – což u velkých transakcí trvalo prakticky stejnou dobu jako původní transakce. Dalším vedlejším účinkem tohoto chování bylo, že protokol transakcí nemohl být během tohoto zpětného procesu zkrácen, což mohlo způsobit problémy s nedostatkem místa na disku.

Zrychlené obnovení databáze (ADR) je v současné době k dispozici ve veřejném preview Azure SQL Database, stejně jako Azure SQL Data Warehouse. Brzy bude ve výchozím nastavení zapnuto pro všechny existující a nové databáze a datové sklady v Azure. ADR bude rovněž k dispozici ve veřejném preview v jedné z nadcházejících sestav CTP SQL Serveru 2019 a očekává se, že ve finální verzi tohoto produktu bude již dostupná ve verzi RTM (release-to-manufacture).

Princip fungování ADR je založen na přítomnosti tzv. trvalé verze v samotné databázi, na rozdíl od úložiště verzí TempDB pro RCSI (Read Committed Snapshot Isolation). Ta spolupracuje s procesem nazvaným logický návrat, který čte uloženou verzi a poskytuje možnost okamžitého návratu zpět. Součástí této technologie jsou také některé paměťové a čistící komponenty, které pracují na pozadí a celý proces podporují.

S touto funkcí jsou sice spojené určité režijní náklady, avšak kterýkoli kriticky důležitý systém ve firmě, který musí být pravidelně patchován nebo má jednoduše dlouhotrvající transakce a může u něj nastat potřeba jejich vrácení, bude z nového chování SQL Serveru 2019 jednoznačně profitovat.

Rychlejší skalární funkce

Skalární funkce, které mohou být zahrnuty do databázových dotazů, jsou konceptem, který je velmi dobře znám vývojářům zvyklým psát ve svém objektově orientovaném kódu. Bohužel v podání starších verzí SQL Serveru byl jejich vzorový návrh poněkud problematický. Skalární funkce jsou prováděny v černé skříňce, což neumožňuje nahlédnout do základních operací dotazu, které je zpracovávají, a vlivem kombinace faktorů existujících v kódové bázi SQL Serveru mají omezený výkon. Dva největší problémy spočívají v tom, že tyto funkce jsou omezeny na jedno-vláknové zpracování a co je důležitější, jsou prováděny řádek po řádku.

To, co dělá nová funkce, tzv. skalární inlinace, je převod tohoto řádkového zpracování do lépe optimalizovaných poddotazů, které jsou zobrazeny v plánu dotazů. Účinky na výkon jsou poměrně dramatické. V dosud provedených amatérských testech na technologickém preview bylo možné spatřit i více než desetinásobné rozdíly oproti starší verzi.

Další nové funkce

Existuje celá řada dalších nových funkcí, včetně sestav a rekonstrukcí rejstříku online sloupců, statické maskování dat (které umožňuje zachování maskovaných dat v jiných prostředích) či vylepšení funkce Always Encrypted, která umožňuje provádět více operací na zašifrovaných datech, aby byla užitečnější v praxi. Existuje také mnoho jemných vylepšení široké škály funkcí, včetně podpory trvalé paměti pro ukládání dat nebo širší podpory externí databáze (Oracle, Teradata a MongoDB) pro PolyBase, která se přizpůsobuje cílům clusterů SQL Server Big Data.

Mnoho z těch nejjemnějších detailů ještě stále přichází. Nicméně, jak sami vidíte v tomto článku, dochází k významným zlepšením v často používaných funkčních oblastech SQL Serveru. Chcete-li mít přehled o všech novinkách v souvislosti s MS SQL Server 2019, jeho cenou i termínem dostupnosti na českém trhu, nezapomeňte se občas podívat na web www.mssql2016.cz.

(Již brzy pro vás spustíme další doprovodné kanály na adrese www.cmis.cz/microsoft-sql a www.mssql.cz, kde si budete moci řešení současně i zakoupit za nejnižší cenu na trhu.)

Článek je reklamní sdělení

Podpořte nás!

CZECHMAG funguje již od roku 2014 jako nezávislý a neziskový projekt několika tvůrců, kteří produkcí vlastního obsahu informují o zajímavých jménech, projektech, akcích a veškerém dění (nejen) na české undergroundové a alternativní kulturní scéně. Přispěním i nepatrné částky nám vyjádříte podporu, která nás motivuje do další tvorby. Každé takové podpory si nesmírně vážíme a předem z celého srdce děkujeme!

Nejčerstvější novinky do e-mailu?