Ostatnie artykuły

Parę faktów o funkcjach okna cz.3: Optymalizacja ROWSTORE

WindowFunctions_rowstore_000

Po dwóch artykułach tłumaczących działanie i zastosowanie funkcji okna przyjrzyjmy się temu co się dzieje pod spodem i jak możemy zwiększyć wydajność naszych zapytań opartych o funkcje okna na strukturach opartych o ROWSTORE czyli tradycyjne tabele bez indeksów kolumnowych, których temat poruszymy w kolejnym artykule. Dziś będziemy korzystać tradycyjnie z bazy transakcyjnej OLTP WideWorldImporters której zalety są raczej oczywiste: zawiera ona dane i indeksację typową dla obciążenia OLTP oraz jest ona darmowa i łatwa w interpretacji. Nie tracąc czasu przejdźmy do konkretnych przykładów! Na początku spróbujmy uruchomić poniższe zapytanie:

Jest to bardzo proste zapytanie korzystające tylko z jednej tabeli,…
Read more

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

FilterInJoinOrWhere_06

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

Row Level Security – luka w bezpieczeństwie?

RLS_Bug_00

Row Level Security był jedną z najbardziej wyczekiwanych funkcjonalności w SQL Server. Wraz z SQL Server 2016 dostaliśmy do dyspozycji ten mechanizm – wielu z nas po pierwszych demonstracjach wyobrażało sobie ogrom możliwości jakie on oferuje. Jednakże póki co posiada on kilka pomniejszych luk na które trzeba zwrócić uwagę – jedną z nich postaram się opisać w ramach niniejszego artykułu. Zapraszam do lektury. Jak zapewne wiecie (a jeśli nie wiecie odsyłam do mojego artykułu gdzie opisuję Row Level Security – znajdziecie go tutaj) bohater niniejszego artykułu działa na podstawie funkcji użytkownika pełniących rolę predykatu filtrującego otrzymywany rezultat lub blokującego określone…
Read more

SSISDB i SSIS catalog od środka [Nagranie]

Podczas konferencji SQL Day 2017 (http://sqlday.pl/) miałem przyjemność poprowadzić sesję pod tytułem “SSISDB i SSIS catalog od środka”. Podczas prezentacji starałem się skupić na mniej trywialnych aspektach działania SSIS Catalog oraz jego architekturze. O samej konferencji pisaliśmy sporo w poście z relacją z tego wydarzenia (http://pl.seequality.net/sqlday-2017-relacja-na-biezaco/) , natomiast na channel9 można już znaleźć nagrania z niektórych wystąpień. Pełny opis sesji: “Możliwość publikowania całych projektów SSIS zamiast pojedynczych pakietów jest ogromnym ułatwieniem dla projektantów procesów ETL w SQL Server Integration Services. Wiele osób zapomina jednak, ze SSIS catalog to nie tylko miejsce, gdzie możemy składować nasze pakiety, ale także baza danych SSISDB,…
Read more

Parę faktów o funkcjach okna cz.2: Agregacja wartości i ramki

TSQL_WindowAggregates_00

Kontynuujemy naszą serię dotyczącą funkcji okna (poprzednią część znajdziecie tutaj). Dziś podejdziemy do tematu z nieco innej strony i przyjrzymy się ich zastosowaniu związanemu z agregacją danych. To właśnie dzięki funkcjom okna możliwa jest agregacja danych z użyciem standardowych funkcji takich jak SUM czy AVG bez konieczności używania GROUP BY na zdefiniowanym przez nas podzbiorze(oknie) danych. Funkcje okna wykorzystane w ten sposób dają nam możliwość budowania nawet bardzo wyszukanych algorytmów użytecznych na potrzeby analityczne ale nie tylko – zapraszam do lektury! Przejdźmy bezpośrednio do przykładów praktycznych tj. użyjmy funkcji SUM z obligatoryjną klauzulą OVER(), która w naszym przykładzie nie przyjmie…
Read more