CONVERT_IMPLICIT – jak wyszukać?

W poprzednim wpisie opisałem zjawisko CONVERT_IMPLICT. Teraz chcę przedstawić jeden ze skryptów, przy pomocy, którego można wyszukać miejsca występowania tego niepożądanego zjawiska. Generalnie informację o występowaniu niejawnej konwersji typów danych możemy znaleźć w planie wykonania zapytań i skrypt właśnie przeszukuje te informacje Poniżej jeszcze lekko zmieniony skrypt, który umożliwia „Normalne” Dowiedz się więcej…

CONVERT_IMPLICIT wyjaśnienie

O CONVERT_IMPLICIT mówimy wtedy, gdy SQL Server napotka w predykatach (klauzula WHERE lub klauzula JOIN) porównanie dwóch różnych typów danych. Wtedy jedna strona wartości zostanie przekonwertowana na typ danych drugiej strony. Ten proces bardzo obciąża procesor, we/wy i pamięć. Za każdym razem, gdy funkcja CONVERT_IMPLICIT zostanie uruchomiona przez zapytanie, zwykle zajmuje Dowiedz się więcej…

Konwersja znacznika czasu UNIX (bigint) na datetime w SQL Server

Na podstawie Wikipedii dowiadujemy się, że w systemie operacyjnym Unix i pochodnych czas jest przedstawiany jako 32-bitowa liczba sekund, które upłynęły od godziny 00:00:00 w czwartek, 1 stycznia 1970 czyli uniwersalnego czasu koordynowanego (UTC). Na tej podstawie można już przekonwertować znacznik czasu UNIX na typ datetime w SQL Server. Dostajemy następujący Dowiedz się więcej…

Wyciągnięcie wartości parametrów zapisanych w planach zapytań

Bardzo często gdy przeprowadzamy proces optymalizacji zapytań przeglądamy wygenerowane plany zapytań. Na tej podstawie można dokonać pewnych optymalizacji, ale czy zawsze ? Często mamy doczynienia z procedurami składowanymi czy też sparametryzowanymi zapytaniami ad-hoc. Przeglądając zapytania dochodzimy do wniosku, że tak do końca nie jesteśmy wstanie stwierdzić jak powinien być wygenerowany Dowiedz się więcej…

SQL Server 2022 – Funkcja DATE_BUCKET()

Jest to nowa funkcja w SQL Server 2022. Funkcja DATE_BUCKET zwraca wartość typu data/godzina odpowiadającą początkowi każdego segmentu typu data/godzina na podstawie sygnatury czasowej zdefiniowanej przez parametr origin lub jeśli nie podano pochodzenia, jako data pochodzenia zostanie użyta domyślna wartość 1900-01-01 00:00:00.000 Składnia: Datapart Część daty musi być jedną z Dowiedz się więcej…