Monthly Archive: November 2017

Tworzenie harmonogramów zadań SQL Server w Task Scheduler

SQLServerSchedule_WithoutAgent_000
Adrian Chodkowski
Follow me

Adrian Chodkowski

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

Latest posts by Adrian Chodkowski (see all)

SQL Server Agent jest powszechnie używany jako narzędzie służące do tworzenia tzw. jobów czyli określonych zadań do wykonania w zadanym harmonogramie. Co jednak gdy nie mam do dyspozycji SQL Server Agent lub z różnych przyczyn nie możemy go użyć (np. SQL Server Express w ogóle go nie zawiera)? W swojej karierze spotkałem kilka implementacji używających zewnętrznych ( w stosunku do SQL Server) narzędzi jak chociażby Control – M.  System operacyjny Windows oferuje nam jednak coś standardowego bez konieczności doinstalowywania zewnętrznych komponentów. W ramach niniejszego artykułu postaram się przedstawić sposób w jaki można wykonywać kopie zapasowe oraz inne skrypty związane z…
Read more

Wyszukiwanie zmiennych tabelarycznych w bazie danych

zmienne_tabelaryczne_banner
Slawomir Drzymala
Follow me on

Slawomir Drzymala

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

Zmienne tabelaryczne to powszechnie znany twór, które bardzo często powoduje problemy wydajnościowy i powinien być stosowany tylko i wyłącznie w wyjątkowych sytuacjach – przykładowo było to wspomniane w poście o zmianie trybu kompatybilności (http://pl.seequality.net/zmiana-compatibility-level/). Problem jest jednak dość szeroko opisany i przedyskutowany i w tym poście zakładam, że jesteśmy w sytuacji, kiedy chcemy sprawdzić, które procedury składowane korzystają ze zmiennych tabelarycznych. W tym poście skupimy się na znalezieniu najbardziej efektywnej metody. Problem wydawałoby się, że jest błahy, natomiast w rzeczywistości może nastręczyć trochę problemów. Potencjalnych rozwiązań może być co najmniej kilka. Pierwszym pomysłem wydaje się skorzystanie z widoku systemowego oraz…
Read more

Zmiana compatibility level w SQL Server – wskazówki

Zmiana compatibility level w SQL Server
Slawomir Drzymala
Follow me on

Slawomir Drzymala

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

Ostatnimi czasy wspierałem administratora baz danych podczas zmiany “compatibility level” dla jednej z baz hurtowni danych. Konkretnie zmiana dotyczyła przejścia z trybu 110 (zgodny z SQL Server 2012) na tryb 120 (zgodny z SQL Server 2014). Baza działała w trybie zgodnym z SQL Server 2012, natomiast Server został już wcześniej “upgradowany” do SQL Server 2014. W tym poście chciałbym podzielić się z problemami oraz wskazówkami dotyczącymi tej zmiany. Przedstawię swój plan pracy oraz poszczególne etapy oraz problemy, które napotkałem. Wskazówki mogą się okazać szczególnie przydatne w przypadku baz hurtowni danych, które uczestniczą w procesie ETL.

Columnstore Index – mechanizmy kompresji

Adrian Chodkowski
Follow me

Adrian Chodkowski

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

Latest posts by Adrian Chodkowski (see all)

Indeksy kolumnowe to jeden z kilku moich ulubionych tematów związanych z SQL Server. Na przestrzeni kilku ostatnich wersji SQL Server zmieniły się one nie do poznania i wywarły bardzo duży wpływ na to jak z technicznego punktu widzenia budujemy hurtownie danych. Ich premiera odbyła się wraz z Denali, czyli SQL Server 2012 gdzie były pierwszą implementacją pomysłu kolumnowego składowania i przetwarzania danych. Pierwsze ich wydanie było bardzo mocno ograniczone przez co liczba scenariuszy w jakich mogliśmy ich użyć drastycznie spadała. Miałem możliwość implementacji indeksów kolumnowych i przedstawienia prezentacji na ich temat jednakże zauważyłem, że na niniejszym blogu jest bardzo mało…
Read more

SQL Server Hash Match – jak to działa

HashJoin_00
Adrian Chodkowski
Follow me

Adrian Chodkowski

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

Latest posts by Adrian Chodkowski (see all)

Nadszedł czas opisać ostatni algorytm złączenia dostępny w SQL Server, którym po Nested Loops oraz Merge Join jest Hash Match. Pierwszy z nich sprawdza się doskonale przy małych zbiorach danych, drugi to świetny algorytm łączący posortowane zbiory danych, bohater niniejszego artykułu sprawdza się z kolei bardzo dobrze przy dużych, nieposortowanych zbiorach wejściowych. Jak to wszystko działa? Postaram się to wytłumaczyć w ramach niniejszego artykułu. Operacja Hash match wewnętrznie składa się z dwóch faz tj. build oraz probe. Podczas fazy build Hash match skanuje jedno z wejść i każdą wartość zamienia na hash i na tej podstawie buduje tabele z wygenerowanymi…
Read more