Zdegradowana wydajność zapytania po dodaniu indeksu
Mam kwerendę, która część SP, która jest wykonywana dość regularnie, i wykonanie zapytania zajęło trochę czasu, więc postanowiłem się temu przyjrzeć. Wykonałem autotrace w zapytaniu ito była egzekucja plan powrócił [wklejony w pastebin z powodu nadmiernego rozmiaru]
Dodałem indeksy do tabel, które były w pełnym dostępie do tabeli i uruchomiłem zapytanie. Wydajność zapytania była gorsza niż wcześniej, pomimokoszt jest znacznie niższy.
Dlaczego tak jest, czy ktoś może rzucić światło na to samo?
Baza danych to Oracle 10gR2 (wydanie 10.2.0.1.0).
To jest uruchamiane zapytanie
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;