Sql COUNT prestazioni domanda
-
20-09-2019 - |
Domanda
Struttura della tabella Esempio:
Id, Integer (PK)
Name, Varchar(100)
Description, Text
Ho bisogno di sapere se esiste differenza di prestazioni tra:
SELECT COUNT(*) FROM Example;
e
SELECT COUNT(Id) FROM Example;
O non esiste differenze?
Soluzione
Le differenze esistono in termini di prestazioni e di risultati attuale
Altri suggerimenti
Controllare il piano di spiegare: fa il risultato provenire da tavolo o da meta dati (ad esempio INFORMATION_SCHEMA) ?: Le differenze sono suscettibili di essere molto minimale
.Vorrei credere che ci sia una differenza; a seconda delle dimensioni della tabella, potrebbe essere irrilevante, o potrebbe essere significativo.
Questa è probabilmente la più lenta: SELECT COUNT (*) FROM Esempio
Questo è nel mezzo: SELECT COUNT (Id) dall'esempio
Questo sarebbe più veloce: SELECT COUNT (1) dell'esempio
Da leggere, ma purtroppo in russo.
COUNT (*), potrebbe essere più veloce ?
Breve storia è che COUNT(*)
non è così efficiente come l'accesso diretto alla dm_db_partition_stats
.