Monthly Archive: January 2017

BIML i Data Profiling Task – automatyczne profilowanie wszystkich tabel w bazie danych

Slawomir Drzymala
Follow me on

Slawomir Drzymala

Still playing with data and .NET technologies
Slawomir Drzymala
Follow me on

Data Profiling Task to według mnie jeden z najciekawszych komponentów SQL Server Integration Services, który bardzo często jest pomijany, lub o którym często się nie pamięta. Jest on przydatny na wielu płaszczyznach pracy z danymi od wyszukiwania problemów z danymi podczas tworzenia aplikacji lub hurtowni danych, aż do podstawowej weryfikacji oraz badania danych na potrzeby ich późniejszego wykorzystania w odkrywaniu wiedzy. Wydaje mi się również, że jest idealnym przykładem do przedstawienia języka BIML, czyli Business Intelligence Modeling Language. Dzięki kombinacji tych dwóch technologii jesteśmy w stanie w bardzo krótkim czasie przygotować uniwersalne narzędzie do gromadzenia podstawowych informacji o danych oraz do ich profilowania. Data Profiling…
Read more

SQL Server 2016 – zmienne, komentowanie miar oraz tabele kalkulowane w Tabular

Adrian Chodkowski
Follow me

Adrian Chodkowski

SQL geek, Data enthusiast, Consultant & Developer
Adrian Chodkowski
Follow me

Kontynuujemy naszą serię opisującą nowości w SQL Server 2016 – dziś powiemy sobie czym są zmienne w języku DAX, które po Power BI i Excel 2016 zagościły w modelu tabelarycznym Analysis Services. Ponadto poruszymy temat komentowania w miarach oraz tabel kalkulowanych – zapraszam do lektury. Zmienne to prawdopodobnie jedno z najpopularniejszych pojęć w szeroko pojętym IT. Każdy język programowania posiada mniej lub bardziej rozbudowane implementacje zmiennych. Nie inaczej było z językami platformy danych Microsoft – nikt z nas nie wyobraża sobie chyba pracy z językiem TSQL bez użycia zmiennych, które niejako nadawały sens użycia procedur składowanych. Istniały jednak pewne wyjątki…
Read more

Generowanie skryptu zmian czyli Visual Studio Schema Compare

Adrian Chodkowski
Follow me

Adrian Chodkowski

SQL geek, Data enthusiast, Consultant & Developer
Adrian Chodkowski
Follow me

Dziś chciałbym napisać parę słów na temat porównania dwóch baz danych pod kątem różnic w definicji obiektów. Jest to dosyć częsta praktyka gdy chcemy porównać bazy pomiędzy np. środowiskiem deweloperskim i produkcyjnym. Kiedyś do tego typu operacji potrzebowaliśmy narzędzi firm trzecich, obecnie możemy do tego wykorzystać standardową funkcjonalność Visual Studio. Na samym początku musimy mieć co porównywać dlatego też stwórzmy sobie dwie bazy danych. Skrypt pierwszej z nich przedstawia się następująco:

Skrypt drugiej bazy wygląda następująco:

W niniejszym artykule będę używał Data Tools for Visual Studio 2015. Podstawą do zrobienia porównania będzie stworzenie nowego projektu bazodanowego – czyli…
Read more

Key/RID lookup – co to jest?

KeyRidLookup_sqlserver_00
Adrian Chodkowski
Follow me

Adrian Chodkowski

SQL geek, Data enthusiast, Consultant & Developer
Adrian Chodkowski
Follow me

Jednym z najprostszych do rozwiązania problemów wydajnościowych w SQL Server są tzw. lookupy o którym chciałbym opowiedzieć w niniejszym artykule – zapraszam do lektury. Jak wiecie optymalizator SQL Server może zdecydować się na użycie indeksu jeżeli tylko będzie to dla niego w odpowiednim stopniu optymalne. Sam indeks może być odpytywany operacją pełnego skanowania (Index Scan) lub też operacjami odszukania (Index Seek) – mechanizmy te opisałem tutaj. Napiszmy proste zapytanie, które przeszuka tabelę operatorem Index Seek (za przykład posłuży nam tabela DimCustomer z bazy AdventureWorksDW2014):

Jak widać użyty został operator Index Seek na indeksie o nazwie IX_LastName. Przyjrzyjmy się bliżej…
Read more

SQL Server 2016 – nowe funkcje tekstowe STRING_SPLIT i STRING_ESCAPE

Adrian Chodkowski
Follow me

Adrian Chodkowski

SQL geek, Data enthusiast, Consultant & Developer
Adrian Chodkowski
Follow me

Dziś krótki artykuł z serii co nowego w SQL Server 2016 (wszystkie posty jakie udało się napisać w ramach tej serii znajdziecie tutaj). Pod lupę weźmiemy dwie nowe funkcje tj. STRING_SPLIT oraz STRING_ESCAPE. STRING_SPLIT jest funkcją o dosyć ciekawej konstrukcji, która zwraca części pojedynczej wartości tekstowej jako odrębne wiersze. Aby lepiej zrozumieć jej działanie lepiej będzie przedstawić to na przykładzie. Tak więc mamy poniższy ciąg znaków:

Naszym celem jest to aby ciąg ten został podzielony w taki sposób, aby każde słowo było traktowane jako osobny wiersz. Z pomocą nam przychodzi wspomniana wcześniej STRING_SPLIT, która za pierwszy parametr przyjmuje właśnie…
Read more