Pobierz - Cezary Ołtuszyk

Transkrypt

Pobierz - Cezary Ołtuszyk
BEST S.A.
Co nowego w SQL Server 2012 dla programistów
Cezary Ołtuszyk
coltuszyk.wordpress.com
Co nowego w SQL Server 2012 dla programistów
Plan spotkania
I.
Sekwencje
II.
Nowe funkcje skalarne
III.
Wzbogacona klauzula OVER
IV.
Indeksy typu COLUMNSTRORE
V.
Mechanizm FILETABLE
VI.
Podsumowanie
Co nowego w SQL Server 2012 dla programistów
Sekwencje
Sekwencje są obiektami pozwalającymi na generowanie wartości wg
określonego licznika. Ich działanie jest bardzo podobne do właściwości
IDENTITY znanej z wcześniejszych wersji SQL Server, jednakże w
przeciwieństwie do niej nie są one bezpośrednio połączone z tabelą.
Składnia sekwencji wygląda następująco:
CREATE SEQUENCE [schema_name . ] sequence_name
[ AS [ built_in_integer_type | user-defined_integer_type ] ]
[ START WITH <constant> ]
[ INCREMENT BY <constant> ]
[ { MINVALUE [ <constant> ] } | { NO MINVALUE } ]
[ { MAXVALUE [ <constant> ] } | { NO MAXVALUE } ]
[ CYCLE | { NO CYCLE } ]
[ { CACHE [ <constant> ] } | { NO CACHE } ]
[ ; ]
Co nowego w SQL Server 2012 dla programistów
Sekwencje
Istnieje wiele scenariuszy wykorzystania nowej funkcjonalności SQL Server-a.
Jedną z nich może być np. nadawanie numerów identyfikacyjnych podczas
ładowania danych do systemu Business Intelligence:
Co nowego w SQL Server 2012 dla programistów
Nowe funkcje skalarne
Kolejną nowością w SQL Server 2012 są nowe funkcje skalarne:
Conversion
functions
Date and time
functions
Logical functions
String functions
PARSE
DATEFROMPARTS
CHOOSE
CONCAT
TRY_CONVERT
DATETIME2FROMPARTS
IIF
FORMAT
TRY_PARSE
DATETIMEFROMPARTS
DATETIMEOFFSETFRO
MPARTS
EOMONTH
SMALLDATETIMEFROM
PARTS
TIMEFROMPARTS
Co nowego w SQL Server 2012 dla programistów
Wzbogacona klauzula OVER
Jednym z udoskonaleń SQL Server 2012 jest rozszerzenie możliwości jaką dają
nam funkcje okienkowe.
Wraz z ukazaniem się wersji CTP3 klauzula ORDER
BY używana wewnątrz OVER nie jest już
zarezerwowana tylko dla funkcji rankingowych,
może ona być także użyta podczas agregacji.
Dodatkowo używając ORDER BY w klauzuli OVER
uzyskaliśmy możliwość limitowania ilości wierszy
przetwarzanych przez funkcję okienkową. Aby
tego dokonać używamy klauzul ROWS lub RANGE.
Dzięki temu zabiegowi dokonywanie takich
obliczeń jak np. sumy bieżące stało się o wiele
prostsze 
Co nowego w SQL Server 2012 dla programistów
Wzbogacona klauzula OVER
Kolejnym usprawnieniem klauzuli OVER w SQL Server 2012 jest wprowadzenie
ośmiu funkcji analitycznych:

CUME_DIST

FIRST_VALUE

LAG

LAST_VALUE

LEAD

PERCENT_RANK

PERCENTILE_COUNT

PERCENTILE_DISC
Co nowego w SQL Server 2012 dla programistów
Indeksy typu COLUMNSTORE
W SQL Server 2012 został wprowadzony nowy typ indeksów COLUMNSTORE. Budowa takiego indeksu różni się od dotychczasowych
rozwiązań. Jest ona oparta na przechowywaniu danych kolumnami, a nie jak
do tej pory wierszami. Ponadto nie ma ona struktury drzewiastej.
Dzięki tej zmianie przechowywane
dane mogą zostać poddane bardzo
efektywnej kompresji.
Głównym przeznaczeniem indeksów
typu COLUMNSTORE są hurtownie
danych.
Co nowego w SQL Server 2012 dla programistów
Indeksy typu COLUNSTORE
Niestety indeksy typu COLUMNSTORE mają też pewne wady, z czego
najbardziej dotkliwymi mogą być:

Dane w indeksie COLUMNSTORE nie mogą być modyfikowane !!!

Indeks ten może być jedynie indeksem niegrupującym

Indeks nie może mieć właściwości UNIQUE

Nie może być zakładany na widokach indeksowanych

Nie można używać kolumn typu SPARSE

Nie można zmieniać definicji indeksu przy użyciu składni ALTER
INDEX

Nie wspiera mechanizmu SEEK
Co nowego w SQL Server 2012 dla programistów
Mechanizm FILETABLE
SQL Server 2012 wprowadza mechanizm o nazwie FILETABLE pozwalający na
przechowywanie plików binarnych w specjalnie do tego celu przeznaczonych
strukturach.
Dostęp do zapisanych w ten sposób danych można uzyskać zarówno z
poziomu T-SQL jak i WINDOWS:
Co nowego w SQL Server 2012 dla programistów
Mechanizm FILETABLE
Aby cieszyć się tą funkcjonalnością należy spełnić kilka wymagań:

włączyć FILESTRAM dla instancji

stworzyć FILESTREAM FILEGROUP dla wybranej bazy danych

ustawić odpowiedni poziom dla nietransakcyjnego dostępu do
danych

ustawić nazwę lokalizacji dostępowej do danych FILETABLE z
poziomu WINDOWS

Stworzyć tabelę typu FILETABLE i umieszczać w niej dane 
Co nowego w SQL Server 2012 dla programistów
Podsumowanie

W SQL Server 2012 do autonumerowania kolejnych
wierszy w tabeli możemy SEKWENCJI

W nowej wersji SQL-a dostaliśmy 14 nowych funkcji
skalarnych, a najfajniejszą jest … 

Stwierdzenie, że „Klauzula OVER w SQL Server 2012
została ulepszona” to mało powiedziane … 

Indeksy typu COLUMNSTORE pozwalają efektywnie
korzystać z danych hurtownianych

Mechanizm FILETABLE pozwala na jednoczesne
przechowywanie danych w bazie i dostęp do nich z
poziomu WINDOWS