Tag Archive: TSQL

Transact Structured Query Language

Porównanie trzech sposobów na PIVOT w TSQL

TsqlPivot_14
Adrian Chodkowski
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

OFFSET FETCH w TSQL – czyli jak stronicować rezultat zapytania TSQL

OFFSET-FETCH_00
Adrian Chodkowski
Follow me

Adrian Chodkowski

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

Z każdą kolejną wersją TSQL jest wzbogacany o nowe funkcjonalności. Jedne z nich są długo oczekiwanymi nowościami (jak np. funkcje okna) inne z kolei przechodzą bez większego echa jak bohater dzisiejszego artykułu tj. funkcjonalność OFFSET FETCH pozwalająca  osiągnąć ciekawe rezultaty w bardzo prosty sposób. Funkcjonalność ta została wprowadzona w Denali czyli w SQL Server 2012, która to wersja była bardzo bogata w w nowości związane z językiem TSQL. Do czego służy ta funkcjonalność i jak jej użyć? Zapraszam do zapoznania się z niniejszym artykułem. Nie owijając w bawełnę przejdźmy do konkretów. Przede wszystkim OFFSET jest rozszerzeniem klauzuli sortującej i pozwala…
Read more

TSQL – warunki filtrujące w WHERE czy w JOIN ON?

FilterInJoinOrWhere_06
Adrian Chodkowski
Follow me

Adrian Chodkowski

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

Na przestrzeni ostatnich lat było mi dane oglądać dużą ilość kodu TSQL napisanego przez kogoś innego. W dużej ilości przypadków spotykałem się z dosyć ciekawymi konstrukcjami, które raz działały lepiej, a raz gorzej. Jedną z takich konstrukcji było umieszczanie warunków filtrujących w sekcji złączenia ON. Czy ma to jakiekolwiek znaczenie? Czy ma to wpływ na wydajność i/lub otrzymane rezultaty w porównaniu do umieszczenia warunków filtrujących w WHERE? Na te i kilka innych pytań postaram się odpowiedzieć w ramach niniejszego artykułu – zapraszam do lektury. Na potrzeby naszej demonstracji stworzymy sobie w bazie systemowej tempdb dwie tabele tymczasowe- jedna z nich…
Read more

NOT EXISTS vs NOT IN – czyli o filtracji wykluczającej

NotInNotExists_00
Adrian Chodkowski
Follow me

Adrian Chodkowski

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

O tym jak odfiltrować dane z jednego zbioru na podstawie danych z innego zbioru powiedziano już bardzo wiele. Mimo, że temat był dosyć mocno eksplorowany to z moich obserwacji wynika, że kwestia ta nie jest do końca zrozumiana. Dlatego też postanowiłem wykonać mój własny test filtracji wykluczającej – porównamy sobie wydajność i efektywność kilku podejść m.in NOT EXISTS oraz NOT IN ale nie tylko – zapraszam do lektury! W naszym przykładzie wykorzystamy hurtownię WideWorldImportersDW i znajdujące się w niej tabele [Dimension].[Stock Item] oraz [Fact].[Movement]. Celem naszych zapytań będzie zwrócenie tych kolorów przedmiotów, które nigdy się nie sprzedały. Jedyną modyfikacją jakiej…
Read more

xp_cmdshell – najniebezpieczniejsze narzędzie w SQL Server?

Adrian Chodkowski
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