SQL

Analiza danych pochodzących z Twittera z wykorzystaniem C# i Power BI

post_logo_publish_post

Poprzedni post, “Podsumowanie Microsoft Ignite 2017 – analiza wydarzenia na Twitterze z wykorzystaniem Power BI”, pokazywał konkretny przykład analizy wybranego hashtagu w Power BI. Mimo, że Power BI wspiera naprawdę dużo źródeł danych, nie ma niestety bezpośredniego połczenia do portalu Twitter. Owszem, można skorzystać z oficjalnego API dostarczanego przez Twitter i wykorzystać, nawet bezpośrednio, z poziomu Power BI, natomiast problemem mogą okazać się limity. Dość skomplikowanym etapem jest również przygotowanie danych do analizy. Tutaj również, mimo, iż Power BI dostarcza ogromna ilość transformacji, w przypadku analizy tekstu wymaga to naprawdę sporo pracy i jest stosunkowo wolne. Przykład analizy tekstu w Power…
Read more

Partycjonowanie tabel a wydajność zapytań w SQL Server

PartitionElemination_00
Follow me

Adrian Chodkowski

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

Partycjonowanie jest szeroko znaną techniką użyteczną w bardzo wielu aspektach pracy związanych z tabelami i indeksami w SQL Server. Zanim zostanę posądzony o herezje to chciałem zaznaczyć, że techniki tej nie należy traktować jako stricte funkcjonalności poprawiania wydajności, jednakże sam sposób jej działania może pozytywnie wpłynąć również na przetwarzanie naszych zapytań odczytujących oraz ładujących. Z partycjami związany jest szereg różnych mechanizmów takich jak partition switching czy chociażby partition elimination, które mogą być bardzo pomocne w codziennej pracy. W ramach niniejszego artykułu przedstawie kilka ogólnych właściwości tabel partycjonowanych oraz powiemy sobie co nieco o eliminacji partycji. Całość tematu będzie najlepiej zrozumieć…
Read more

Porównanie trzech sposobów na PIVOT w TSQL

TsqlPivot_14
Follow me

Adrian Chodkowski

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

Dane w relacyjnych bazach danych posiadają formę tabelaryczną tj. składają się z kolumn oraz wierszy. Zdarza się jednak dosyć często, że chcemy wiersze zamienić na kolumny lub kolumny na wiersze – operację taką zwyczajowo nazywamy piwotowaniem. W ramach tego artykułu chciałbym przedstawić trzy różne sposoby na osiągnięcie zamierzonego rezultatu. Oczywiście nie są to wszystkie możliwe sposoby – znajdą się inne metody na odwrócenie wyniku zarówno w samym kodzie TSQL, kodzie zewnętrznym czy w SSIS – jednakże w ramach tego artykułu chciałbym się ograniczyć do tych trzech metod, które mimo wszystko wydają się najprostsze i najbardziej popularne. Zapraszam do lektury. Na…
Read more

xp_cmdshell – najniebezpieczniejsze narzędzie w SQL Server?

Follow me

Adrian Chodkowski

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

SQL Server jest oprogramowaniem, które pod kątem bezpieczeństwa posiada całą gamę opcji. Każda z tych opcji może być ustawiona w lepszy lub gorszy sposób w zależności od wiedzy i doświadczenia osoby ustawiającej. Niektóre “luki” w złej konfiguracji serwera są mniej niebezpieczne – inne z kolei bardziej. Są jednak pewne granice, których przekraczać nie wolno! Przykładów jest wiele np. nie można ustawiać trywialnego hasła do konta sa, nie wolno dawać uprawnień sysadmin na prawo i lewo – nie wolno nie robić kopii zapasowych baz produkcyjnych. Każde z tych uchybień może mieć katastrofalne skutki jak np. utrata danych w bazie danych. Jest…
Read more

Number of Rows Read czyli kilka słów o residual predicate pushdown

ResiudalPredicates_00
Follow me

Adrian Chodkowski

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

Wraz z Service Pack 3 dla SQL Server 2012 oraz Service Pack 2 dla SQL Server 2014 i wyżej otrzymaliśmy pewne udogodnienie w odczytywaniu mechanizmu zwanego Residual Predicate Pushdown, który jest niczym innym jak ukrytym filtrowaniem podczas wykonywania zapytania. Jak to działa? Sprawdźmy to. Na samym początku uruchomimy w bazie AdventureWorksDW2014 następujące zapytanie:

Powyższe zapytanie nikomu nie powinno sprawić większych problemów – na ten moment możemy na jego temat powiedzieć kilka rzeczy, a mianowicie: pobiera cztery atrybuty z tabeli DimCustomer filtruje dane po jednym z pobieranych atrybutów stworzony filtr nie jest przyjazny dla tego aby optymalizator wybrał operację Index…
Read more