Rendimiento Pregunta RECUENTO sql
-
20-09-2019 - |
Pregunta
Estructura del Ejemplo tabla:
Id, Integer (PK)
Name, Varchar(100)
Description, Text
Necesito saber si existe diferencia en el rendimiento entre:
SELECT COUNT(*) FROM Example;
y
SELECT COUNT(Id) FROM Example;
O no existe diferencias?
Solución
Existen diferencias en el rendimiento y el conjunto de resultados reales
Otros consejos
Comprobar el plan explique: ¿el resultado proviene de la mesa o de los metadatos (por ejemplo INFORMATION_SCHEMA) ?: Las diferencias probablemente sean muy mínima
.Me creo que hay una diferencia; dependiendo del tamaño de la tabla, podría ser insignificante, o podría ser significativo.
Este es probablemente el más lento: SELECT COUNT (*) del Ejemplo
Este está en el medio: SELECT COUNT (Id) del Ejemplo
Esto sería más rápido: SELECT COUNT (1) del Ejemplo
Vale la pena leer, pero por desgracia, en ruso.
COUNT (*), que podría ser más rápido ?
El cuento es que COUNT(*)
no es tan eficiente como el acceso directo a la dm_db_partition_stats
.