¿Cómo se ajusta una ejecución a una consulta SQL?Performance Tuning SQL - ¿Cómo?
- ¿Qué trucos/herramientas/conceptos se pueden usar para cambiar el rendimiento de una consulta SQL?
- ¿Cómo se pueden cuantificar los beneficios?
- ¿De qué hay que tener cuidado?
qué trucos/herramientas/conceptos se pueden utilizar para cambiar el rendimiento de una consulta SQL?
- ¿Cómo usar los índices? ¿Cómo funcionan en la práctica?
- Datos normalizados vs desnormalizados? ¿Cuáles son las compensaciones de rendimiento vs diseño/mantenimiento?
- Mesas intermedias preprocesadas? ¿Creado con disparadores o trabajos por lotes?
- ¿Reestructurar la consulta para usar Tablas de temperatura, Sub Consultas, etc.?
- ¿Separa las consultas complejas en múltiplos y UNION los resultados?
- ¿Algo más?
¿Cómo se puede cuantificar el rendimiento?
- ¿Lee?
- Tiempo de CPU?
- "% Query Cost" cuando se ejecutan diferentes versiones juntas?
- ¿Algo más?
¿Qué se necesita tener cuidado de?
- ¿Tiempo para generar planes de ejecución? (procedimientos almacenados vs Inline consultas)
- procedimientos almacenados se ven obligados a volver a compilar
- Prueba de conjuntos de datos pequeños (¿Las consultas aumentan linealmente, o ley del cuadrado, etc?)
- Los resultados de carreras anteriores se almacenan en caché
- Optimizar el "caso normal", pero dañar el "peor caso"
- ¿Qué es "Parameter Sniffing"?
- ¿Algo más?
Nota para los moderadores: Esta es una gran pregunta, ¿debería haber dividirlo en varias de las preguntas?
Nota Para respondedores: Debido a que esta es una pregunta enorme favor hacer referencia a otras preguntas/respuestas/artículos en lugar de escribir largas explicaciones.
1 Estoy de acuerdo un buen libro es un buen paso, me gusta el servidor de la optimización del rendimiento de SQL 2005 en el interior – SQLMenace