Bom dia Emerson, Entendi que a tabela e temporária no sentido de guardar os dados temporariamente, não foi uma duvida, por esse motivo é que acredito que o problema deve ter sido a falta de um rebuild no índice, somente recriar o índice, digo a PK, já que arquitetura e a mesma, tanto a do índice criado quanto a da PK.
Com o tempo, se não houver uma manutenção no índice o problema pondera se repetir, logo de tempos em tempos, recrie o mesmo. Enviado do meu iPhone > Em 10 de dez de 2019, à(s) 10:52, Emerson Sanches emerson.sanc...@gmail.com > [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu: > > > Bom dia. A PK esta criada desde que a tabela foi criada, e não tive problema > com ele. Quando digo que é uma tabela "temporária" digo isso pq ela é usada > como auxiliar de um relatório, não que eu a cria e a destrua sempre. Ela foi > criada, fica no banco, e quando vou rodar a procedure eu inicio apagando os > dados antigos. Acho que deveria ter me referido a ela como "tabela auxiliar" > mesmo, teria gerado menos confusão. > No inicio do processamento, no "insert" inicial de itens, o processo todo é > bem rápido, o problema estava quando ia alterar (update) nos itens que já > estavam na gravados na tabela (no cursor inicial). Era nesse processo de > update que o negocio pegava. Quando foi criado um índice, o problema acabou. > Por isso a duvida se o índice gerado na PK é tratado de forma diferente do > índice criado manualmente. > > > []s > Emerson Sanches > Analista de Sistemas > > >> Em seg., 9 de dez. de 2019 às 19:57, aandrelrm aandre...@yahoo.com.br >> [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu: >> >> Boa noite, >> >> Em relacao a PK, ela foi recriada ou ja existia? >> Acredito que o problema se resolveria com a recriacao da PK, ja que voce >> disse que apenas apaga os dados correto? >> >> Acredito que apenas um rebuild resolveria. >> >> Em relacao a diferença entre PK e indice em termos de arquitetura nao ha, >> ele cria uma arvore e suas respectivas folhas. >> >> >> Experimenta dropar o indice e recria a PK, lembrando que se esta tabela >> tiver dependente, apague a consttraint. >> >> Espero ter ajudado! >> >> >> >> Enviado do tablet Samsung. >> >> -------- Mensagem original -------- >> De : "Emerson Sanches emerson.sanc...@gmail.com [oracle_br]" >> <oracle_br@yahoogrupos.com.br> >> Data: 09/12/2019 16:23 (GMT-03:00) >> Para: oracle_br@yahoogrupos.com.br >> Assunto: [oracle_br] Criação Índice >> >> >> 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 > >