Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

camilla

Andamento da procedure

Recommended Posts

Estou rodando uma procedure que nada mais é q um INSERT. Mas estou fazendo um INSERT de uns 200.000 registrosComo posso saber se o andamento está ok???Sei que é um processamento longo, está durando 3 dias, mas queria ter certeza q está ok, ....Eu tenho como verificar se as inserções estão sendo feitas?????? Como???Obrigada !!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

???num saquei..num é só contar quantos registros tem????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Camila,

 

Priumeiramente seu servidor deve estar com muitos problemas de performance, pois uma inserção de 200.000 registros demorar 3 dias, é complicado.

 

Mais voltando ao assunto, para verificar que sua procedure está OK, basta acessar a view v$session e verificar o sql_address e status da sua sessão.

 

Exemplo:

 

sql> select username, sid, serial#, sql_address, status  2     from v$session  3     where username <> ' ';

Agora, ache o usuário que você está conectado ao banco de dados, depois de identificar, seja como está o status de sua sessão, ATIVA ou INATIVA.

 

Se estiver ativa, sua procedure ainda está sendo executada. caso contrario não.

 

Para saber como está o andamento da sessão, copie o valor hexadecimal que está no campo sql_address, depois faça o seguinte comando.

 

sql> select sql_text from v$sqlarea where address = '004455AA22';

004455AA22 --> é o valor do meu sql_address da sessão.

 

OK!

 

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cada insert leva quase 3s !!

 

Verifique a SP que faz isto e as triggers disparadas (se houver) pois está bravo, seu problema é o tempo e não a qtd de registros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada !!Com isso posso fazer uma maior análise, ... para saber o q está acontecendo, ...Realmente, o bd não está muito legal, ... mas preciso descobrir pq, ..Bjs e Valeu !!Camilla

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta,se a cada insert leva mais ou menos 3 segs, ... as contas são:200.000registros * 3seg = 600.000seg600.000seg/60seg = 10000min10.000min/60min = 166,6 horas166,6 horas/24 = 6,9 dias !!!!!!!!!!!!Estou errada ???Valeu !Bjs,Camilla

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique o Last_Analyzed de cada tabela que você está fazendo inserção.

 

Verifique também como está o consumo de mémoria dos processos de servidor na máquina.

 

Utilize o PERFSTAT, e as views v$sysstat para saber o que está acontecendo.

 

Geralmente, aqui onde trabalho fazemos inserção de 10milhões de registros e 20 minutos. Essa é a média.... http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

 

O banco está uma carroçinha aí...

 

beijokas.

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta,

 

se a cada insert leva mais ou menos 3 segs, ... as contas são:

 

200.000registros * 3seg = 600.000seg

600.000seg/60seg = 10000min

10.000min/60min = 166,6 horas

166,6 horas/24 = 6,9 dias !!!!!!!!!!!!

 

Estou errada ???

 

Valeu !

 

Bjs,

Camilla

<{POST_SNAPBACK}>

 

na verdade 200000/86400 (60s x 60min x 24h)= 2,31 s

 

sou exagerado ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caramba,

3 dias pra rodar 200.000 registros...

 

Camila,

Verifica se tem indexes criados para esse tabela,

da uma melhorada de 1000% no mínimo.

 

Outra dica tb, vai la nas sessões que está executando o comando e verifica se está tendo muito acesso ao Hd

e aos Hard Parses, uma boa configuração fica tendo muito mais leituras lógicas do que no Hd.

 

http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Camila,

 

Seguinte, para fazer uma melhor analise, seja como está sendo inseridos esses registros, processos de carga por comandos DML (INSERT) é mais demorado, caso seja muitos registros vindos de arquivos TXT ou outras extenções, utilize o SQL*Load.

 

Antes de inserir os dados, DROP os Indexes e crie os novamente, os Indices atrapalham as inserções nas tabelas.

 

Outro ponto importante, é verificar sua configuração de SGA e mémoria do servidor, pode estar precario.

 

Caso não utilize commit ao inserir os dados, verifique os segmentos de rollback e a performance dos blocos de leitura deles.

 

Com isso já dá para dar uma melhorada.

 

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa rotina não tem nenhum teste de busca antes de inserir não? pois é muito tempo para cada inserção... imagino eu que deve ter alguma busca complexa com testes para cada novo registro

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.