Verschlechterte Leistung einer Abfrage nach dem Hinzufügen von Index
Ich habe eine Abfrage, welcher Teil eines SP ziemlich regelmäßig ausgeführt wird, und die Ausführung der Abfrage hat eine Weile gedauert, daher habe ich beschlossen, sie mir anzusehen. Ich habe eine automatische Verfolgung für die Abfrage durchgeführt, undDas war die Hinrichtung Plan zurückgegeben [wegen zu großer Größe im Pastebin eingefügt]
Ich fügte Indizes zu den Tabellen hinzu, auf die der vollständige Tabellenzugriff ausgeführt wurde, und führte die Abfrage aus. Die Abfrageleistung war trotz der schlechter als zuvordie Kosten sind erheblich niedriger.
Warum ist das so, kann jemand ein Licht auf dasselbe werfen?
Die Datenbank ist ein Oracle 10gR2 (Release 10.2.0.1.0).
Dies ist die Abfrage, die ausgeführt wird
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;