Databases

Porównywanie struktury i wykrywanie zmian pomiędzy bazami danych

Porównywanie struktury i wykrywanie zmian pomiędzy bazami danych oraz ich projektem
Slawomir Drzymala
Follow me on

Slawomir Drzymala

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

Wprowadzenie Porównywanie struktury i wykrywanie zmian pomiędzy bazami danych wydaje się problemem dość powszechnym. Motywacja może być skrajnie różna, ale jako przykład można podać: Sprawdzanie zmian pomiędzy projektem bazy danych oraz samą bazą danych przed jej aktualizacjom Sprawdzenie zmian pomiędzy dwiema różnymi bazami danych Sprawdzanie aktualnej struktury bazy danych z projektem w celu wykrycia manualnych zmian w bazie danych Scenariusze te mogą wynikać czy to z przygotowania procesu publikacji zmian czy też zapewnienia odpowiedniej higieny bazy danych. Trzeba pamiętać, że w przypadku rozwiązań hurtowni danych dość często spotkać można różne “tymczasowe” obiekty, takie jak tabele z kopią danych przed przeładowaniem…
Read more

Adaptive Query Processing – Interleaved execution

Adrian Chodkowski
Follow me

Adrian Chodkowski

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

Wraz z SQL Server 2017 wprowadzono szereg ulepszeń w przetwarzaniu zapytań. Jedną z najbardziej spektakularnych jest bez wątpienia tzw. Adaptive Query Processing czyli tłumacząc na nasz język możliwość dostosowywania przez optymalizator sposobu wykonania zapytań w trakcie przetwarzania. Adepci optymalizacji zapytań powinni w tej chwili się zastanowić i zadać pytanie czy to w ogóle możliwe? Przecież to całkowicie zmienia schemat działania optymalizatora! Odpowiedź jest jednoznaczna i brzmi: tak można – od SQL Server 2017. Już na samym wstępie chciałbym zaznaczyć, że nie oznacza to, iż teraz optymalizator będzie zmieniał plan wykonania po każdym operatorze, a jedynie dostosowywał odpowiednie elementy planu w…
Read more

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

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