SQL Server database

Raport Schema Changes History i default trace w SQL Server

SQLServer_SChemaChangesHistory_00
Adrian Chodkowski
Follow me

Adrian Chodkowski

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

Szeroko pojęte operacje DDL (Data Definition Language) w SQL Server czyli wszelkiego rodzaju CREATE, DROP, ALTER powinny być używane z rozwagą szczególnie jeśli chodzi o serwery produkcyjne. Stwierdzenie to jest oczywiste dla niemal każdego, a ja przytoczyłem go ze względu na tematykę niniejszego artykułu, którym jest wbudowany w SSMS raport Schema Changes Hsitory pozwalający nam w przystępny sposób dostrzec co, gdzie i kiedy zostało wykonane na naszym serwerze. Przyjmy się nie tylko samemu raportowi ale również mechanizmowi na którym on bazuje. Na samym wstępie powiedzmy sobie gdzie w ogóle wspomniany raport możemy znaleźć. Rzekłbym w standardowym miejscu tj. wystarczy kliknąć…
Read more

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

Modyfikacja planu wykonania przy wykorzystaniu Plan Guide

PlanGuides_00
Adrian Chodkowski
Follow me

Adrian Chodkowski

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

Do napisania niniejszego artykułu skłoniło mnie pytanie jakie usłyszałem na jednym ze spotkań Data Community. Chodziło w nim mianowicie o to, że zadający miał problem z zapytaniem, którego nie mógł zmodyfikować, a plan wykonania jaki wybierał SQL Server jest całkowicie nieakceptowalny i niewydajny. Dodam jeszcze, że osoba ta nie miała do dyspozycji Query Store i najnowszej wersji SQL Server. Jakie jest jedno z rozwiązań tego problemu? O tym postaram się dziś opowiedzieć. Często zdarza się, że zapytania zostały napisane przez kogoś innego, a my musimy radzić sobie z ich optymalizacją. Jeszcze gorszym scenariuszem jest fakt, że nie możemy zmodyfikować samego…
Read more

10 złych praktyk i niebezpiecznych nawyków w SQL Server

SQLBadHabits_07
Adrian Chodkowski
Follow me

Adrian Chodkowski

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

W swojej karierze miałem okazję oglądać już całkiem dużą liczbę mniejszych lub większych implementacji z wykorzystaniem SQL Server. Zdarza mi się również oglądać rozwiązania pisane według myśli technicznej innych deweloperów. Bardzo często spotykam się z kodem TSQL, który jest nie tylko bardzo dobrze napisany pod kątem składni, ale również poukładany według pewnych konwencji nazewniczych. Niestety często oglądam również małe “potworki” gdzie deweloperzy nie trzymają się absolutnie żadnych dobrych praktyk, a to co mieli na myśli pisząc taki, a nie inny kod jest zagadką tak ciężką do rozwiązania, że same próby przyprawiają o ból głowy. Dlatego też postanowiłem, że kilka pomniejszych…
Read more