on 09-20-2012 1:38 PM
Bom dia,
Estamos rodando o SPED EFD de um mês e a performance está extremamente baixa, demora em média 5 dias para rodar, no primeiro select da j_1bnfdoc ele para e fica muito tempo:
Alguém tem alguma para otimizarmos a performance desse select ou da tabela j_1bnfdoc?
Obs.: Atualmente ela possuímos 2.000.000 de registros aproximadamente.
Desde já, obrigado.
Bom,
Procurei por notas da SAP, procurei em diversos fórum e não encontrei uma solução. As notas pelo que constei, estão aplicadas.
Consultei diversas notas.
Vou continuar aguardando uma nova nota da SAP ou qualquer outra alternativa.
Se eu possuir alguma outra informação atualizada, volto a postar.
Vou concluir o tópico.
Obrigado pela ajuda de vocês.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Um detalhe que eu percebi é que ele faz diversas vezes e durante muito tempo leitura sequencial na tabela j_1befd_indx.
Eu tinha encontrado uma nota da SAP referente a essa tabela, justamente sobre performance, mas não salvei e agora não encontro mais informação nenhuma.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Bom dia Antonio,
Tá muito ruim para 2mi de registros.
Veja na SM50 que select ele está fazendo, faça um SQL trace (ST05) para pegar que instrução está sendo enviada ao banco, e faça um explain plain (F5 na ST05) do SQL para ter uma ideia do plano de acesso. Poste aqui os resultados.
Atenciosamente, Fernando Da Rós
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Carlos, o banco é Oracle.
--------------------------------------------------
Fernando,
Primeiramente, obrigado pela resposta.
Estou demorando para responder pois estou com outra demanda e também estou analisando melhor essa demora.
Não consegui dar explain no select da j_1bnfdoc, mais pelo que olhei via SE30 e ST05, não é o select da j_1bnfdoc que está demorando. Quando posiciono sobre o fetch da j_1bnfdoc e dou explain, aparece que não é possivel fazer o explain.
Pelo que estou testando é o Bloco H - Inventário, porque coloquei para gerar sem esse bloco e gerou 1 mês em 1h40min... tempo excelente ser for considerar o tempo que falei inicialmente...
Estou medindo agora com o Bloco H flagado e vamos ver a diferença... depois posto o ST05 dele e se possivel, SE30
Obrigado e se tiver alguma dica, será muito bem vinda.
Att.,
Junior
Bom dia Junior,
O explain plain funciona na linha do SQL (PREPARE) normalmente a primeira que aparece o nome da tabela, depois seguem vários FETCH's.
Você fez descobertas importantes, continue fazendo o trace.
Na parte de inventário acho que pode ser por implementação de BAdI's.
Atenciosamente, Fernando Da Rós
Bom, no seu caso verifique se não existe uma solução melhor de banco de dados que trabalhe melhor com tabelas deste tamanho. Outra solução seria copiar a tabela j_1bnfdoc para uma tabela Z remover da tabela z os dados dos anos anteriores que não serão considerados no SPED que será transmitido e alterar a transação j1befd. Pode resolver se estiver com problemas na geração do arquivo e prazo curto. Mas com certeza não é a saída mais adequada para o caso.
Qual Banco de dados usa?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Já tentou rodar um Update all optimizer statistics (todas as tabelas) e um Refresh table statistics (tabelas selecionadas) usando a transação DB50?.
Segue abaixo lista de procedimentos que devem ser realizados periodicamente no banco de dados a fim de otimizar o desempenho. Na empresa onde trabalho fazemos uma vez a cada 15 dias.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
13 | |
2 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.