MSSQL wydajność is not null lub equals

MSSQL wydajność is not null lub equals
AD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 39
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:

Kopiuj
 ... WHERE dataColumn is not null

czy

Kopiuj
 ... WHERE columnValue = 20
PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3891
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

woolfik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1611
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.

Vardamir
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.