Nowości od Małomiękkiego

https://xpil.eu/GyQ0b

Po raz kolejny firma Microsoft wypuszcza nową wersję SQL Servera. Tym razem 2016.

Oczywiście jak już nowa wersja, to oczywiście nowe opcje, możliwości i ulepszenia. Rzućmy okiem, co tym razem przynosi nowa wersja (póki co jeszcze nie można jej kupić, ale można pobrać do testów).

Samo gęste siedzi, jakże by inaczej, w silniku bazy danych, więc skupimy się na nim:

1. Poprawione indeksy CODB (CODB to dane uporządkowane w trybie "columnar" - jeszcze chyba nie ma dobrego, popularnego polskiego słówka na ten tryb składowania danych). Bez wchodzenia zbyt głęboko w szczegóły, od teraz indeksy te będą działać szybciej przy odczycie oraz będą bardziej elastyczne (i również szybsze) przy zapisie.

2. Liczne usprawnienia technologii Hekaton (nie wiem, czy MS jeszcze w ogóle chce używać tej nazwy), czyli po naszemu In-Memory OLTP. Lepsza obsługa wielojęzyczności, współbieżności, łatwiejsze analizowanie wydajności zapytań, lepsza integracja z PowerShell i wiele innych.

3. Statystyki wykonania zapytań w czasie rzeczywistym. Do tej pory mieliśmy do wyboru albo zobaczyć przewidywany plan wykonania zapytania (przed jego wykonaniem), albo wykonać zapytanie, odczekać do końca i dopiero wtedy zobaczyć jaki był faktyczny plan zapytania (wraz z wszelkimi informacjami statystycznymi typu ilości wierszy, czasy wykonania poszczególnych kroków itd). Od wersji 2016 będzie można sobie obserwować plan zapytania w czasie rzeczywistym, bez konieczności czekania na zakończenie zapytania.

4. Magazyn zapytań ("Query Store"), czyli możliwość odpytywania metadanych serwera o historyczne plany zapytań oraz ich łatwego porównywania i analizy. Dzięki temu - przynajmniej teoretycznie - będzie można łatwiej zrozumieć co i w jaki sposób wpływa na wydajność wykonania poszczególnych zapytań, kiedy i dlaczego plany zapytań się zmieniają i tak dalej. To już było wcześniej (za pomocą DMV), ale teraz ma był łatwiej i wygodniej.

5. Historyzacja danych: dotychczas to programista musiał zadbać o to, żeby poprawnie rejestrować informacje historyczne - na ogół tworzyło się osobną tabelę z sufiksem "_history" (lub podobnym) i tam logowało zmiany w tabeli głównej. Powodowało to brak standardyzacji oraz ciągłe wynajdywanie koła. Od wersji 2016 będzie można używać tzw. "Temporal Tables", nowego rodzaju tabel, które będą rejestrować historię zmian w tabeli głównej automatycznie.

6. Kopie zapasowe lokalnych danych do chmury Azure: bez wnikania w szczegóły, od teraz będzie można wykonać kopię niektórych danych lokalnych do instancji serwera Azure.

7. Natywna obsługa JSON: od teraz będzie można zwracać wyniki zapytania SQL w formacie JSON - a więc ogromne pole do popisu dla programistów tworzących wtyczki do innych systemów typu NoSQL (MongoDB, ToroDB, CouchDB i wiele innych).

8. Możliwość wykonania operacji TRUNCATE na pojedynczej partycji (a nie tylko na całej tabeli) - coś, co od dawna było dostępne u konkurencji, wreszcie trafia pod strzechy microsoftowe.

9. Maskowanie danych: możliwość ustawienia maski na dane wrażliwe. Maska zastąpi zwracane dane, jeżeli zapytanie będzie wykonane przez nieuprawnionego użytkownika. Można w ten sposób na przykład "wygwiazdkować" hasła, zastąpić kody pocztowe maską XX-XXX albo pokazać "Adama Kowalskiego" jako "A*** K*******" i tak dalej. Fajna sprawa, bo dotychczas trzeba było kombinować dookoła (widoki, funkcje etc).

Wyżej wymienione to tylko niektóre (te - moim zdaniem - najbardziej interesujące) usprawnienia w wersji 2016. Moje dwa ulubione to obsługa JSON oraz TRUNCATE pojedynczej partycji - jedno może ułatwić kooperację z innymi silnikami danych, a drugie - zoptymalizować proces ładowania warstwy Stage hurtowni. Trzeba bowiem pamiętać o tym, że dziś powoli odchodzi się od hurtowni danych opartych stricte na RDBMS na rzecz rozwiązań typu Hadoop czy Mongo - i to nie tylko ze względu na wydajność, ale głównie na koszty licencji.

Na koniec dzisiejszego wpisu małe spostrzeżenie: co prawda wersja 2016 już na horyzoncie, ale większość znanych mi firm do dziś używa wersji 2005 lub 2008 (czyli dwie lub trzy wersje "za Murzynami") i nie czują specjalnego parcia na migrację do najnowszych fontann i wodotrysków.

W końcu tabelka to tabelka.

C'nie?

https://xpil.eu/GyQ0b

Leave a Comment

Komentarze mile widziane.

Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]

Jeżeli zrobisz literówkę lub zmienisz zdanie, możesz edytować komentarz po jego zatwierdzeniu.