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
>
> 
>
  • [oracle_br] Criação ... Emerson Sanches emerson.sanc...@gmail.com [oracle_br]
    • Re: [oracle_br]... aandrelrm aandre...@yahoo.com.br [oracle_br]
    • Re: [oracle_br]... Emerson Sanches emerson.sanc...@gmail.com [oracle_br]
      • Re: [oracle... André Luiz aandre...@yahoo.com.br [oracle_br]
        • Re: [or... Emerson Sanches emerson.sanc...@gmail.com [oracle_br]

Responder a