Använd
JOIN
(i
FROM
-satsen) när du ska inkludera en tabell i en fråga i stället för en underfråga i
WHERE
-satsen. Detta fungerar även om du bara behöver data i en tabell för filtrering, inte för resultatet.
Att koppla flera tabeller i
FROM
-satsen fungerar bättre än att använda en underfråga i en
WHERE
-sats.
Undvik SQL-satser som inte kan dra nytta av index. Sådana satser inkluderar de som använder sammanställningsfunktioner i en underfråga, en
UNION
-sats i en underfråga och en
ORDER BY
-sats med en
UNION
-sats.
Ett index kan avsevärt öka bearbetningshastigheten för en
SELECT
-fråga. En del SQL-syntax hindrar dock databasen från att använda index och tvingar den att använda verkliga data för söknings- och sorteringsåtgärder.
Undvik att använda operatören
LIKE
, speciellt med ett inledande jokertecken, t.ex.
LIKE('%XXXX%')
.
Eftersom
LIKE
-åtgärden har stöd för sökningar med jokertecken tar det längre tid än exakta jämförelser. Om du inleder söksträngen med jokertecken kan databasen inte använda index alls vid sökningen. I stället måste databasen söka igenom den fullständiga texten på varje rad i tabellen.
Undvik att använda operatören
IN
. Om de möjliga värdena är kända på förhand, kan
IN
-åtgärden skrivas med
AND
eller
OR
för snabbare körning.
Den andra av följande två satser verkställs snabbare. Den är snabbare eftersom den använder enkla likhetsuttryck i kombination med
OR
i stället för
IN()
- eller
NOT IN()
-satser:
-- 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
Överväg alternativa former av en SQL-sats för att förbättra prestandan.
Så som visades i de föregående exemplen kan databasprestandan påverkas av hur en SQL-sats är skriven. Det finns ofta flera olika sätt att skriva en
SELECT
-sats för att hämta en viss resultatmängd. I vissa fall körs en metod avsevärt snabbare än en annan. I tillägg till de föregående förslagen kan du lära dig mer om olika SQL-satser och deras prestanda via särskilda resurser om SQL-språket.
|
|
|