Ještě dnes mám v živé paměti instalaci bezpočtu aktualizací (SP/CU/Hotfix) na SQL Server, kdy byly verze 2005 a 2008 posledním výkřikem databázové módy. I v současnosti celá řada IT specialistů vyznává léty prověřené pravidlo, že novou verzi SQL Serveru je bezpečné používat až po vydání prvního SP. Byly to doby, kdy Service Pack obsahoval především opravy nalezených chyb a stabilizoval chování databázového systému. Ty doby jsou zdá se již dávnou minulostí. Ne snad, že by Service Packy nových verzí SQL Serveru 2012/2014/2016 neobsahovaly opravy chyb a problémů, ale dělají mnohem víc. Čím dál častěji i velmi podstatně rozšiřují funkce samotného databázového systému. Tak schválně… možná právě teď používáte SQL Server 2014. Víte, že instalací SP2 na SQL Server 2014 máte možnot používat nový příkaz DBCC CLONEDATABASE ? Příkaz, který vytvoří kopii Vámi zvolené databáze se všemi objekty, ale bez dat. Podstatné je, že kopie obsahuje jak programové objekty tak i statistiky, čehož se dá výborně využít jak při vývoji, tak při testování exekučních plánů.

V tomto krátkém článku však chci hovořit o nečem neslýchaném, doslova revolučním změnám, které přináší Service pack 1 pro MS SQL 2016. Byl vydán dnes, 16.11.2016, takže celou řadu novinek nemám otestovaných, ale popis změn je naprosto ohromující. Z celé řady školení, které jsem v uplynulých 8 letech vedl, si jasně vybavuji výrazy zklamání ve tvářích databázových specialistů, když zjistili, že právě prezentovaná funkce a komponenta je obsažena pouze v Enterprise edici SQL Serveru, zatímco oni nebo jejich zákazníci používají “pouze” edici Standard. Tak pro všechny takové z Vás mám velmi dobrou zprávu…

Změny v oblasti edicí SQL 2016 Service Pack 1

sql2016sp1

Ano, nešálí Vás zrak… všechny ty príma funkce jako In-Memory OLTP, Columnstore index, Partitioning, Database Audit Specification atd. jsou dostupné ve Standard a dokonce i Express edici. In-Memory OLTP a Columnstore indexy jsou omezeny následovně :

  • In-Memory OLTP může využít pouze 1/4 paměti pro buffer pool
  • Columnstore indexy mohou využít 1/4 paměti pro buffer pool, 2 jádra v případě Standard/Web edice, 1 jádro v případě Express/LocalDB edice

 

Další novinky a změny

  • DBCC CLONEDATABASE(zdrojova_db, cilova_db)
    • Vytvoří kopii zvolené databáze, obsahující programové objekty a statistky, tabulky/indexy však neobsahují data.
    • Tento příkaz lze použít v SQL 2014 od SP2, SQL 2016 RTM ho neobsahuje
    • Nově možnost použití přepínačů NO_STATISTICS a NO_QUERYSTORE
  • CREATE OR ALTER
    • S příchodem tohoto příkazu odpadá test existence programového objektu. Pokud objekt neexistuje, je vytvořen, pokud existuje, je alternován
    • Lze použít pro objekty View, Stored procedure, User-defined function, Trigger
    • CREATE OR ALTER PROCEDURE dbo.Proc01 AS …
  • DMV obsahují informace o tom, zda Database Engine používá Lock Pages in memory a Instant File Initialization
  • Database Engine loguje do souboru ERRORLOG případné problémy s rozdílou velikostí/filegrowth souborů tempdb databáze
  • Celá řada nových Query hintů
  • XML podoba exekučního plánu dotazů obsahuje více detailních informací a warningů pro lepší diagnostiku výkonnostních problémů
  • Systémová funkce sys.dm_exec_query_statistics_xml je schopna zjistit podobu aktuálního exekučního plánu v době, kdy je dotaz teprve vykonáván
    • Dříve jsme museli na podobu aktuálního exekučního plánu počkat na dokončení dotazu
  • Lepší diagnostika latence při použití vysoké dostupnosti AlwaysOn Availability Group
  • INSERT…SELECT je zpracován jedním vláknem při vkládání dat do temp tabulky
    • SQL 2016 RTM zavedla automatické vícevláknové zpracování INSET…SELECT pokud je cílem temp tabulka i bez použití hintu TABLOCK, což ale na celé řadě produkčních prostředí způsobovalo problémy s PAGELATCH stránek PFS databáze tempdb
  • Výrazně nižší zatížení systému při detailním výkonovém profilování dotazu s použitím sys.dm_exec_query_profiles nebo Extended Event query_thread_profile
  • A celá řada dalších vylešení…

Další informace a detaily naleznete na těchto stránkách

https://blogs.msdn.microsoft.com/sqlreleaseservices/sql-server-2016-service-pack-1-sp1-released/

https://sqlperformance.com/2016/11/sql-server-2016/big-deal-sp1