Desempenho degradado de uma consulta após a adição do Index
Eu tenho uma consulta que parte de um SP que é executado com bastante regularidade, e a consulta demorou um pouco para executar, então eu decidi dar uma olhada nisso. Eu fiz um autotrace na consulta eesta foi a execução plano retornado [colado em pastebin devido ao tamanho excessivo]
Eu adicionei índices nas tabelas que estavam passando por acesso total à tabela e executei a consulta. O desempenho da consulta foi pior do que antes, apesar dacusto sendo significativamente menor.
Por que isso é assim, alguém pode lançar uma luz sobre o mesmo?
O banco de dados é um Oracle 10gR2 (Release 10.2.0.1.0).
Esta é a consulta que está sendo executada
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;