J'ai une requête qui fait partie d'un SP qui est exécuté assez régulièrement, et la requête a pris un certain temps à s'exécuter, j'ai donc décidé d'y jeter un coup d'œil. J'ai fait un autotrace sur la requête, et this was the execution plan retourné [collé dans pastebin en raison de la taille excessive]Dégradation des performances d'une requête après l'ajout de l'index
J'ai ajouté des index sur les tables qui subissaient l'accès à la table complète, et a couru la requête. La performance de la requête était pire qu'avant, malgré le cost being significantly lower.
Pourquoi est-ce ainsi, quelqu'un peut-il jeter la lumière sur le même?
La base de données est une Oracle 10gR2 (version 10.2.0.1.0).
C'est la requête en cours d'exécution
SELECT DISTINCT CAC_FLEX_03, CAC_FLEX_04
FROM PCOM_CUST_PRACTICE_INFO A,
PGIM_ZIP_CODES C,
PGIM_PROD_TARIFF_DATA B,
PCOM_CODES_APPL_CODES D
WHERE A.PCPI_CUST_CODE IN ('002023', '002025')
AND C.ZC_ZIP_CODE = A.PCPI_PIN_CODE
AND C.ZC_CITY_CODE = A.PCPI_CITY
AND C.ZC_COUNTY_CODE = A.PCPI_COUNTY
AND C.ZC_STATE_CODE = A.PCPI_STATE
AND B.PTD_CVR_CODE = 'TF-001'
AND B.PTD_VALUE_SET2 = A.PCPI_STATE
AND B.PTD_VALUE_SET4 = A.PCPI_COUNTY
AND B.PTD_VALUE_SET5 = D.CAC_FLEX_03
AND D.CAC_FLEX_04 IS NOT NULL
AND ZC_STATE_CODE =
(SELECT POL_FLEX_04
FROM PGIT_POLICY
WHERE POL_SYS_ID = 541332)
AND B.PTD_VALUE_SET3 =
(SELECT POL_FLEX_01
FROM PGIT_POLICY
WHERE POL_SYS_ID = 541332)
AND CAC_TYPE = 'TERR-CODE'
AND CAC_FLEX_03 = 0;
les stats de votre schéma sont-elles à jour? – SeriousCallersOnly
SeriousCallersOnly - Comment puis-je trouver cela? – Sathya
regardez dans user_tables/user_indexes pour les tables/indexes dans votre requête, il y a une colonne "last_analyzed" – SeriousCallersOnly