estoy usando una consulta SQL que es similar a la siguiente forma:externa izquierda en el problema de rendimiento dos columnas
SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.person_uid = table2.person_uid
AND table1.period = table2.period
Y es ya sea demasiado lenta o algo está deadlocking porque se necesitan al menos 4 minutos a regreso. Si tuviera que cambiarlo a esto:
SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.person_uid = table2.person_uid
WHERE table1.period = table2.period
entonces funciona bien (aunque no devuelve el número correcto de columnas). Hay alguna manera de acelerar esto?
ACTUALIZACIÓN: Se hace lo mismo que si me cambio las dos últimas líneas de la última consulta:
SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.period = table2.period
WHERE table1.person_uid = table2.person_uid
ACTUALIZACIÓN 2: Estas son en realidad ve que estoy unirse. Desafortunadamente, están en una base de datos sobre la que no tengo control, por lo que no puedo (fácilmente) hacer cambios en la indexación. Me inclino a aceptar que esto es un problema de indexación. Esperaré un poco antes de aceptar una respuesta en caso de que haya alguna forma mágica de sintonizar esta consulta que yo desconozca. De lo contrario, aceptaré una de las respuestas actuales y trataré de encontrar otra forma de hacer lo que quiero hacer. Gracias por la ayuda de todos hasta ahora.
proporcione el plan de ejecución para esta consulta – squadette