Tengo una vista que usa 11 uniones externas y dos uniones internas para crear los datos. Esto resulta en más de 8 millones de filas. Cuando hago un conteo (*) sobre la mesa, demora unos 5 minutos en ejecutarse. No sé cómo mejorar el rendimiento de esta tabla. ¿Alguien tiene alguna sugerencia sobre dónde comenzar? Parece que hay índices en todas las columnas que se unen (aunque algunos son compuestos, no estoy seguro si eso hace la diferencia ...)Mejorando el rendimiento en una vista con MUCHAS uniones
Cualquier ayuda apreciada.
¿ha mirado los planes de ejecución estimados/reales? ellos te dirán si te falta un índice en algún lugar – dan
Lo he visto. No hay escaneos de tabla que ocupen un tiempo significativo. Hay una gran cantidad de "Hash Matches" que se suman a un rendimiento deficiente, pero las coincidencias de Hash solo se realizan cuando los índices se usan correctamente. –
un truco que encontré muy útil es dividir una consulta compleja en subconsultas, p. si tiene una consulta con 11 uniones, es un trabajo duro para el optimizador que generalmente no es capaz de considerar más de 4 combinaciones a la vez. Intentaría mantener la consulta externa con 4 uniones mover otras uniones a subconsultas. Me ayudó en algunos casos. – root