Boa tarde pessoal do Grupo. Tenho uma procedure rodando com muitos cursores pra popular uma tabela auxiliar que criei (essa tabela é fixa, eu apago ela completamente no inicio da procedure). Essa tabela contem vários campos, entre ele CNPJ cliente, Código Produto e Part Number do produto. Esse campos são usados na PK da tabela.
O primeiro cursor acessa a base de faturamento e popula essa tabela criada com informação do cnpj cliente, código do produto e part number do cliente. O restante dos campos são deixados em branco. O segundo cursor acessa essa tabela, populada pelo cursor anterior, e, baseado em suas informações, acessa a base de custos. Depois de aberto o cursor, eu faço um update na tabela criada com as informações retornada pelo cursor. Esse processo sempre rodou rapidamente, dentro do esperado pra um processo desse tipo. Na ultima semana o processo ficou EXTREMAMENTE lento. Conversando com o DBA (free lance da empresa) ele solucionou o problema criando um índice utilizando os campos CNPJ Cliente, Código Produto e Part Number. Ai que vem a duvida, na criação da PK já não foi criado um índice com esses campos? Pq a criação de um índice "manual" resolveu o problema, se, teoricamente, o índice já existia? O Oracle trata de forma diferente índices criados automaticamente pela PK e índices criados manualmente? Espero ter me feito entender. Agradeço desde pela atenção sempre prestada. []s Emerson