Składnia SQL zwiększająca efektywność wykonania kodu

Za pomocą instrukcji JOIN (w klauzuli FROM ) można uwzględnić tabelę w zapytaniu zamiast w podrzędnym zapytaniu w klauzuli WHERE . Ta wskazówka ma zastosowanie, nawet jeśli dane tabeli są potrzebne do filtrowania, a nie do uzyskania zestawu wyników.

Połączenie wielu tabel w klauzuli FROM działa lepiej niż użycie podrzędnego zapytania w klauzuli WHERE .

Należy unikać instrukcji SQL, które nie korzystają z indeksów. Te instrukcje obejmują użycie funkcji agregacji w podzapytaniu, instrukcji UNION w podzapytaniu lub klauzuli ORDER BY z instrukcją UNION .

Indeks może znacznie zwiększyć szybkość przetwarzania zapytania SELECT . Jednak niektóre fragmenty składni SQL uniemożliwiają bazie danych korzystanie z indeksów i zmuszają ją do wykonywania operacji wyszukiwania i sortowania na rzeczywistych danych.

Należy unikać stosowania operatora LIKE , szczególnie z wiodącym znakiem wieloznacznym np.: LIKE('%XXXX%') .

Operacja LIKE obsługuje stosowanie wyszukiwań z wykorzystaniem znaków wieloznacznych, dlatego działa wolniej niż porównania z założeniem dokładnej zgodności. W szczególności, jeśli ciąg wyszukiwania rozpoczyna się symbolem wieloznacznym, baza danych nie będzie mogła w ogóle użyć indeksów w wyszukiwaniu. W zamian baza danych będzie musiała użyć wyszukiwania pełnotekstowego w każdym wierszu tabeli.

Należy unikać stosowania operatora IN . Jeśli możliwe wartości są z góry znane, wówczas operacja IN może zostać zapisana za pomocą operatorów AND lub OR , które zapewniają szybsze wykonanie.

Druga z poniższych dwóch instrukcji jest wykonywana szybciej. Dzieje się tak, ponieważ wykorzystuje ona proste wyrażenia równości połączone z operatorem OR zamiast instrukcji IN() lub NOT IN() :

-- Slower 
SELECT lastName, firstName, salary 
FROM main.employees 
WHERE salary IN (2000, 2500) 
     
-- Faster 
SELECT lastName, firstName, salary 
FROM main.employees 
WHERE salary = 2000 
    OR salary = 2500
W celu zwiększenia wydajności należy rozważyć stosowanie alternatywnych form instrukcji SQL.

Poprzednie przykłady demonstrują, że sposób zapisania instrukcji również może wpłynąć na wydajność bazy danych. Często istnieje wiele sposobów pisania instrukcji SQL SELECT w celu pobrania określonego zestawu wyników. W niektórych przypadkach instrukcja zapisana w jeden określony sposób będzie działać znacznie szybciej niż zapisana inaczej. Dodatkowe informacje na temat instrukcji SQL i ich wydajności zawierają dedykowane materiały dotyczące języka SQL.