cancel
Showing results for 
Search instead for 
Did you mean: 

Performance na J_1BEFD

junior_correia
Explorer
0 Kudos

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.

Accepted Solutions (0)

Answers (5)

Answers (5)

junior_correia
Explorer
0 Kudos

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.

former_member182114
Active Contributor
0 Kudos

Bom dia Antonio,

Você chegou a abrir chamado à SAP sobre isso?

Pode ser que verificando seu sistema entendam o motivo da demora, ou então, encontrem algo que pode ser modificado para todos os clientes.

Sugiro abrir chamado em XX-CSC-BR-REP, se ainda não o fez.

Atenciosamente, Fernando Da Rós

junior_correia
Explorer
0 Kudos

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.

former_member182114
Active Contributor
0 Kudos

Bom dia Junior,

Não é exatamente uma mas várias, procure no componente XX-CSC-BR-REP, por generic EFD enhancements e EFD. Provavelmente tem melhoria ausente no seu sistema.

Atenciosamente, Fernando Da Rós

former_member182114
Active Contributor
0 Kudos

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

junior_correia
Explorer
0 Kudos

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

former_member182114
Active Contributor
0 Kudos

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

Former Member
0 Kudos

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?

Former Member
0 Kudos

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.

junior_correia
Explorer
0 Kudos

Obrigado pela resposta Carlos,

Verifiquei com a equipe de Basis e estes procedimentos já estão sendo executados na empresa. Alguns diariamente outros semanalmente.