SQL Server

SQL Server 2016 – Přehled novinek a změn v T-SQL

SQL Server 2016 je skutečným evolučním skokem ve vývoji této oblíbené databázové platformy a jeho význam je srovnatelný s příchodem SQL Serveru 2005 před jedenácti lety. Aktuální vydání přináší spoustu úplných novinek (Temporal Tables, Row Level Security, atd.) i významná rozšíření některých existujících funkcí (Columnstore, InMemory, atd.). V tomto článku přinášíme (snad) z větší části kompletní seznam nejvýznamnějších změn v jazyce T-SQL.

T-SQL

  • DATEDIFF_BIG (MSDN, mssqltips.com)
    • rozšíření funkce DATEDIFF, které vrací BIGINT a je tedy možné získat počet členů mnohem širšího časového intervalu
  • AT TIME ZONE (MSDN, sqlserverperformance.com)
    • klauzule pro jednoduchý převod data a času do konkrétní časové zóny
  • SESSION_CONTEXT() (MSDN, mssqltips.com)
    • extenze a náhrada stávající funkce CONTEXT_INFO()
  • TRUNCATE TABLE WITH (PARTITIONS ()) (MSDN, mssqltips.com)
    •  rozšíření příkazu o možnost určit konkrétní partitions, které mají být vyprázdněny (výčtem nebo rozsahem)
  • DROP IF EXISTS (mssqltips.com)
    • objekty lze smazat bez nutnosti manuálně testovat, zda existují
  •  HASHBYTES() (MSDN)
    • funkce nyní neobsahuje omezení maximální délky hashovaného řetězce na 8000 znaků
  •  FORMATMESSAGE() (MSDN)
    • kromě systémových zpráv lze nově formátovat i vlastní řetězec
  • ALTER TABLE WITH (ONLINE = ON | OFF) (MSDN)
    • některé změny metadata tabulek (datový typ sloupce apod.) lze nyní provádět v režimu online
  • STRING_SPLIT( string , separator ) (MSDN, sqlserverperformance.com)
    • funkce pro převod řetězce hodnot do tabulky
  • STRING_ESCAPE( text , type ) (MSDN)
    • provede escape speciálních znaků v řetězci (zatím pouze v rámci podpory JSON)
  • COMPRESS( expression ), DECOMPRESS( expression ) (MSDN, mssqltips.com )
    • provede kompresi/dekompresi vstupního řetězce algoritmem GZIP
  • MIN_GRANT_PERCENT, MAX_GRANT_PERCENT (MSDN, sqlservercentral.com)
    • query hinty umožňují nastavit paměťové limity pro konkrétní dotaz
  • NO_PERFORMANCE_SPOOL (MSDN)
    • query hint, kterým lze potlačit použití table spool operátoru v exekučních plánech
  • sp_execute_external_script (MSDN)
    • procedura, která umožňuje spouštět kód podporovaných externích jazyků, aktuálně R a Python
  • Temporal Tables (mssqltips.com)
    • rozšíření jazyka T-SQL pro podporu nové funkcionality časových tabulek: FOR SYSTEM_TIME AS OF, FROM/TO, CONTAINED etc.
  • JSON (MSDN)
    • SQL Server nově podporuje i formát JSON (alternativu k staršímu XML) a přináší tyto nové funkce:
      • JSON_VALUE() – získání skálární hodnoty z JSONu
      • JSON_QUERY() extrahování části JSONu jako stringu
      • ISJSON() – funkce pro ověření, zda je řetězec platným JSONem
      • JSON_MODIFY() – funkce pro změnu hodnot v JSONu
    • kromě uvedených skalárních funkcí je možné převést JSON na klasický dataset pomocí fuknce OPENJSON() (obdoba OPENXML() funkce)
    • pomocí rozšíření příkazu SELECT o klauzuli FOR JSON AUTO|PATH je možné převádět klasický SQL dataset  do JSON formátu (obdoba FOX XML…)
  • DYNAMIC DATA MASKING (MSDN)
    • dynamické skrývání hodnot ve sloupci pomocí funkcí vracejících skalární hodnotu: MASKED WITH (FUNCTION = ?)  a související oprávnění: ALTER ANY MASK, UNMASK

Leave a Reply

Your email address will not be published. Required fields are marked *