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
> 
> 

Responder a