Onödig databasbearbetning i körtid

Använd ett helt kvalificerat tabellnamn (inklusive databasnamn) i SQL-satsen.

Specificera alltid databasnamnet explicit tillsammans med varje tabellnamn i en sats. (Använd ”main” om det är huvuddatabasen). Följande kod inkluderar t.ex. ett explicit databasnamn, main :

SELECT employeeId 
FROM main.employees

Genom att ange databasnamnet explicit förhindrar du att körningen måste kontrollera varje ansluten databas för att hitta den matchande tabellen. Det förhindrar även möjligheten att fel databas väljs i körningen. Bakom scenerna är SQLConnection-instansen även ansluten till en temporär databas som är tillgänglig via SQL-satser. Därför bör du följa den här regeln även om en SQLConnection-instans bara är ansluten till en enskild databas.

Använd explicita kolumnnamn SQL INSERT - och SELECT -satser.

Exemplen nedan visar hur du använder explicita kolumnnamn:

INSERT INTO main.employees (firstName, lastName, salary) 
VALUES ("Bob", "Jones", 2000) 
     
SELECT employeeId, lastName, firstName, salary 
FROM main.employees

Jämför de föregående exemplen med de som följer. Undvik den här typen av kod:

-- bad because column names aren't specified 
INSERT INTO main.employees 
VALUES ("Bob", "Jones", 2000) 
     
-- bad because it uses a wildcard 
SELECT * 
FROM main.employees

Utan explicita kolumnnamn måste körtidsmodulen utföra extra arbete för att ta reda på kolumnnamnen. Om en SELECT -sats använder ett jokertecken i stället för explicita kolumner kommer körtidsmodulen att hämta extra data. Dessa extra data kräver ytterligare bearbetning och skapar objektinstanser som inte behövs.

Undvik att koppla samma tabell flera gånger i en sats om du inte jämför tabellen med sig självt.

När SQL-satser blir stora, kan du av misstag koppla en databastabell till en fråga flera gånger. Ofta kan samma resultat uppnås om tabellen bara används en gång. Det är mer troligt att samma tabell kopplas flera gånger om du använder en eller flera vyer i frågan. Du kanske t.ex. kopplar en tabell till en fråga samt en vy som inkluderar data från samma tabell. De två åtgärderna leder till mer än en koppling.