MSSQL

SQL Server – wstawianie danych a kompresja stron na stertach

SQLServer_CompressionAndHeaps_00
Adrian Chodkowski
Follow me

Adrian Chodkowski

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

Już jakiś czas nie pisałem na niniejszym blogu niczego na temat bazy danych SQL Server dlatego postanowiłem to zmienić i opisać dosyć ciekawy mechanizm. Chodzi mianowicie o kompresję, tak tę tradycyjną kompresję stron, która jest powszechnie znana ale charakteryzuje się wieloma właściwościami, które mogą nas nieco zaskoczyć. Jedną z takich właściwości jest “współpraca” kompresji i tabel bez indeksów czyli stert (ang. heap). Współpraca ta na pierwszy rzut oka wygląda dokładnie tak jak byśmy się tego spodziewali, ale ciekawe efekty pojawiają się wtedy, gdy chcemy do takiej tabeli wstawić dane. Właśnie temu zagadnieniu chciałbym poświęcić niniejszy wpis do lektury, którego serdecznie…
Read more

SQL Server objects ownership oraz Ownership Chain

SQLServer_OwnershipChain_000
Adrian Chodkowski
Follow me

Adrian Chodkowski

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

Widoki bardzo często dają możliwość wyświetlenia odpowiednich danych określonym użytkownikom. Podobną rolę mogą spełniać procedury składowane czy też tabelaryczne funkcje użytkownika. Jak można przypuszczać obiekty te bardzo często są wykorzystywane jako mechanizm bezpieczeństwa co wydaje się naturalne i nie ma w tym nic złego. Czy jednak nadanie praw do odpytania widoku czy wykonania procedury gwarantuje, że zwrócone zostaną dane? Oczywiście, że nie! W grę wchodzi tutaj posiadanie uprawnień właściciela oraz mechanizm Ownership Chain o których chciałbym dziś napisać parę słów. Na samym początku troszeczkę teorii jeśli chodzi o prawa właściciela oraz schematy ze względu na fakt, iż są one ze…
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.

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

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

Partition switching w SQL Server

Adrian Chodkowski
Follow me

Adrian Chodkowski

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

W przypadku hurtowni danych podczas ładowań danych do tabeli faktów bardzo często zdarza się, że chcemy zastąpić dane za określony okres (np. miesiąc)  świeżymi danymi z systemów źródłowych. Może to być wykonane na wiele sposobów, dla przykładu możemy usunąć z tabeli ostatni miesiąc komendą DELETE i wstawić nowe dane. Wiąże się to z wieloma niedogodnościami, po pierwsze operacja usunięcia będzie w pełni logowana, po drugie samo wyszukanie danych do usunięcia może być problematyczne. Dodatkowo możemy mieć problemy związane z lockami i blokadami. Powszechnie znanym faktem jest to, że jednymi z najszybszych operacji w SQL Server są operacje na metadanych, które…
Read more