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