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
  • [oracle_br] Criação ... Emerson Sanches emerson.sanc...@gmail.com [oracle_br]

Responder a