Pour améliorer les performances de la requête suivante, nous devons supprimer la clause OR et utiliser UNION. La clause OR ne permet pas de considérer l'index, c'est pourquoi nous devons utiliser UNION à la place. Veuillez me faire savoir s'il existe une autre meilleure façon d'améliorer les performances de cette requête et éviter d'utiliser la clause OR?Amélioration des performances de la requête SQL en remplaçant OU par UNION
SELECT *
FROM A
LEFT OUTER JOIN B
ON A.NBR_CH = B.NBR_CH
LEFT OUTER JOIN C
ON B.ID = C.ID
WHERE A.LIS IN (:IdList)
AND ((C.TYP_C = :Type
AND C.R_NBR LIKE :rNbr)
OR (A.R_NBR LIKE :rNbr))
WITH UR
Qu'est-ce que 'WITH UR'? –
@GordonLinoff 'WITH {RR | RS | CS | UR}' indique au plan d'être compilé avec le niveau d'isolement spécifié, dans ce cas, lecture non validée. – mustaccio
Quelle plateforme et quelle version? Pourquoi pensez-vous que la RO empêche l'utilisation de l'index? – Charles