Bonjour,

J'ai la requête suivante dans une procédure stockée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
SELECT  DISTINCT nsiret
   INTO  Ora_nsiret
  FROM  dpa_marche_hist_acompte
WHERE  (idenos = Ora_idenos OR (idenos IS NULL AND Ora_idenos IS NULL))
 AND  (nomht1 = Ora_nomht1 OR (nomht1 IS NULL AND Ora_nomht1 IS NULL))
 AND  (nomhl1 = Ora_nomhl1 OR (nomhl1 IS NULL AND Ora_nomhl1 IS NULL))
 AND  (nstra = Ora_nstra OR (nstra IS NULL AND Ora_nstra IS NULL))	
 AND  (eaetex = Ora_eaetex OR (eaetex IS NULL AND Ora_eaetex IS NULL))
 AND  (dexemm = Ora_dexemm OR (dexemm IS NULL AND Ora_dexemm IS NULL))
 AND  (cnapai = Ora_cnapai OR (cnapai IS NULL AND Ora_cnapai IS NULL))
 AND  (ctatva = Ora_ctatva OR (ctatva IS NULL AND Ora_ctatva IS NULL));
Un index existe sur les 8 colonnes utilisées dans la clause WHERE.
J'ai plusieurs requêtes de ce type avec la même clause WHERE.

Il me semble que l'index n'est pas utilisé si la clause IS NULL est choisie.
Y a t il un moyen d'optimiser cela?

Merci.