Operatory bitowe do wykonywania operacji logicznych w T-SQL cz.I

Jeśli potrzeba wykonać operacje logiczne na operatorach bitowych zawartych jako kolumny w tabelach bez problemu można to wykonać z poziomu języka T-SQL SQL Server. T-SQL udostępnia operatory bitowe do wykonywania operacji logicznych na kolumnach tabeli bazy danych SQL Server. Poniżej przedstawię operatory bitowe OR, AND i XOR. Zaczniemy od utworzenia tabeli z kolumną klucza podstawowego, wraz z dwiema kolumnami typu danych BIT. Następnie wypełnimy tabelę czterema wierszami, tak jakbyśmy tworzyli klasyczną tabelę prawdy. Poniżej tabela z podstawowymi operacjami logicznymi: Najpierw utworzymy tabelę Dowiedz się więcej…

Nowe #CU dla SQL Server 2017 i 2019

Pojawił się w lutym 2021r nowe zestaw skumulowanych poprawek CU: w wersji 9 dla MS SQL Server 2019 (KB5000642) w wersji 23 dla MS SQL Server 2017 (KB5000685) Aktualizuje składniki usług SQL Server i Analysis do następujących kompilacji: Składnik Wersja produktu Wersja pliku SQL Server 15.0.4102.2 2019.150.4102.2 Analysis Services 15.0.34.29 2018.150.34.29 #CU9 SQL Server 2019 Składnik Wersja produktu Wersja pliku SQL Server 14.0.3381.3 2017.140.3381.3 Analysis Services 14.0.249.70 2017.140.249.70 #CU23 SQL Server 2017

List Expensive Queries using DMV and Bitwise

Poniżej przedstawiam sposób w jaki można wyciągnąć z SQL Server listę najbardziej kosztownych zapytań T-SQL. Zapytanie to zwraca do czterej list w podziale na kategorie (kryteria) tego czego szukamy: Frequently ran query High Disk Reading query High CPU query Long Running query Gdy znajdziemy już na liście interesujące nas zapytanie można przejść do ostatniej kolumny tego zapytania, otworzyć plan wykonania i rozpocząć analizę i dostrajanie zapytania. W zapytaniu tym ustawiamy odpowiednie wartości do uzyskania kategorii oraz możemy określić ile najcięższych zapytań chcemy Dowiedz się więcej…

Progi rekompilacji statystyk w SQL Server

Jeśli chcemy mieć stale aktualne statystyki możemy je aktualizować ręcznie lub włączyć opcje automatycznej aktualizacji statystyk AUTO_UPDATE_STATISTICS. Po włączeniu tej opcji to właśnie optymalizator zapytań określa, kiedy statystyki mogą być nieaktualne, a następnie aktualizuje je, gdy są używane przez zapytanie. Ta czynność jest nazywana rekompilacją statystyk. Kiedy statystyki stają się nieaktualne? Po wszelkich modyfikacjach na danych czyli operacjach: INSERT, UPDATE, DELETE, MERGE, które zmieniają rozkład danych w tabeli lub poindeksowanym widoku. Query Optimizer określa, kiedy statystyki mogą być nieaktualne, zliczając liczbę modyfikacji Dowiedz się więcej…

Skrypty do generowania testowych tabel, indeksów i statystyk.

W poście dotyczącym maksymalnej ilości kolumn w indeksach i statystykach ciężko by było ręcznie wpisać kod np. statystyki z 64 testowymi kolumnami. Analogicznie ma się sprawa z indeksami czy też samą tabelą. Stworzyłem skrypty do generowania tych obiektów, które przedstawiam poniżej. Generowanie tabeli: podajemy parametry wymagane @TableName i @NumofCols oraz opcjonalne @ColPrefixName i @ColTypes. Kolejny skrypt służy wygenerowaniu kodu tworzącego indeksy. Podajemy parametry wymagane @TableName, @IndexName i @NumofCols oraz opcjonalne @ColPrefixName. Ostatni skrypt służy do wygenerowania kodu tworzącego statystyki. Podajemy parametry wymagane Dowiedz się więcej…

Maksymalna ilość kolumn w indeksie i statystykach.

Przeczytałem dwa wpisy Pinal Dave na blogu https://blog.sqlauthority.com. Oba dotyczyły maksymalnej ilości kolumn użytych do budowy indeksów i statystyk. Jeden pewnie dotyczył SQL Server 2008, a drugi SQL Server 2012. Dokładnie nie było to podane lecz tak wywnioskowałem z daty wpisu. W pierwszym wpisie Pinal Dave pokazuje, że po przekroczeniu ilości 16 kolumn dostajemy komunikaty błędów przy próbie utworzenia indeksu czy statystyki dla np. 17 kolumn. W drugim wpisie Pinal Dave pokazuje, że po przekroczeniu ilości 32 kolumn dostajemy komunikaty błędów przy Dowiedz się więcej…