MSSQL wydajność is not null lub equals

0

Witam
Mam pytanie odnośnie wydajności zapytania. Mam zapytanie z zestawem operacji join oraz warunkiem zapytania. To czego szukam mogę znaleźć sprawdzając czy kolumna z datą nie jest nullem lub czy wartość w kolumnie jest równa (=) jakiejś wartości. Innymi słowy, która operacja będzie bardziej efektywna:

 ... WHERE dataColumn is not null

czy

 ... WHERE columnValue = 20
1

Zawsze staraj się unikać negacji w zapytaniach, one z reguły nie dają się dobrze optymalizować. Generelanie można by książkę o tym napisać (https://msdn.microsoft.com/en-us/library/ff647793.aspx).

A prawdę zawsze ci powie Execution Plan w SSMS Ctrl+L

1

Nie jestem pewien jak w MSSQL ale w Oracle zapytania z null wymagały odpowiednio stworzonego indeksu. Bez tego zapytania where cos is null /not null nie należały do najwydajniejszych.

0

To zależy od tego jak wygląda zapytanie i tabela, których dotyczy to pytanie. Pytanie jest np. czy istnieje jakiś index?

Poza tym tak jak powiedział kolega powyżej, możesz podglądnąć plan zapytania. Jeśli możesz to zamieść DDL tabeli i zapytanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1