Jump to content


- - - - -

Demora Na Geração Do Sped










1 resposta a este tópico

#1 Turbo_Drive

    Membro

  • Membros
  • PipPip
  • 83 posts

Adicionado 16 March 2011 - 09:25 AM

Bom dia a todos.

Gostaria de saber qual o tempo médio de geração do Sped ? Eu mandei gerar ontem o Sped de um supermercado que possui 3 ECF's e demorou quase 20 horas. Quando terminou, o arquivo possuía apenas 5,7 MB. Eu tenho certeza que tem algo errado, o problema é onde encontrar.
A maior demora está na contagem dos registros C460, C470 e C490, que são os registros referentes ao ECF.

Para cada registro eu possuo uma tabela. Vou explicar como procedo em meu aplicativo:
1º Dou um select na tabela C400, mando percorrer essa tabela do início ao fim (lista de ECF's);

2º Dou um select na tabela C405_C420 (lista os dados da redução Z e seus totalizadores parciais), por ECF (resultado da C400) no período de apuração e mando percorrer essa tabela;

3º Dou um select na tabela C460 (Cupons), por ECF (resultado da C400) e por dia (resultado da C405_C420), e mando percorrer;

4º Durante o percurso da C460, dou um select na tabela C470(itens dos cupons), por ECF (resultado da C400), por dia (resultado da C405_C420) e por cupom (resultado da C460), e mando percorrer essa tabela;

Se alguém tiver algum idéia para melhorar esse processo, fico agradecido.

No final o meu arquivo fica assim:


|C400|2D|MP-25 FI|BE0106000000000|002|
|C405|10022011|003|001298|202324|3186179,49|3762,41|
|C420|02T1200|671,55|02||
|C420|04T2500|89,15|04||
|C420|05T0700|77,25|05||
|C420|F1|464,59|||
|C420|I1|422,63|||
|C420|Can-T|261,62|||
|C460|2D|02|202267|||||||
|C460|2D|00|202318|10022011|0,03|||||
|C470|00000000000906|3|0|UN|0,03|000|5102|0,00|0,00|0,00|
|C470|07891091061789|1|1|UN|2,75|000|5102|17,00|0,00|0,00|
|C470|07891091061789|2|2|UN|5,50|000|5102|17,00|0,00|0,00|
|C460|2D|02|202319|||||||
|C460|2D|02|202321|||||||
|C460|2D|02|202322|||||||
|C490|000|5102|0,00|0,03|0,03|0,00||
|C405|11022011|003|001299|202534|3192295,99|6116,50|
|C420|02T1200|1245,11|02||
|C420|04T2500|109,01|04||
|C420|F1|937,99|||
|C420|I1|947,44|||
|C420|Can-T|76,98|||
|C460|2D|00|202326|11022011|465,92|||||
|C470|00000000000013|17,04|0|KG|27,09|040|5102|0,00|0,00|0,00|
|C470|00000000000365|1|0|CX|1,00|000|5102|17,00|0,00|0,00|
|C470|07501009224174|1|0|UN|3,75|060|5102|0,00|0,00|0,00|
|C470|07893000042094|1|0|UN|11,99|000|5102|17,00|0,00|0,00|
|C470|00000000000042|5,066|0|KG|43,56|000|5102|17,00|0,00|0,00|
|C470|00000000000757|7,005|0|KG|43,78|020|5102|12,00|0,00|0,00|
|C470|00000000000040|0,722|0|KG|7,47|000|5102|17,00|0,00|0,00|
|C470|00000000000134|1,09|0|KG|12,48|000|5102|17,00|0,00|0,00|
|C470|00000000000087|0,544|0|KG|9,22|000|5102|17,00|0,00|0,00|
|C470|00000000000087|0,572|0|KG|9,69|000|5102|17,00|0,00|0,00|
|C470|07898022500089|2|0|UN|9,10|000|5102|17,00|0,00|0,00|
|C470|07898022500010|2|0|UN|4,50|000|5102|17,00|0,00|0,00|
|C470|07898022500119|3|0|UN|8,97|000|5102|17,00|0,00|0,00|
|C470|07898022500140|3|0|UN|8,40|000|5102|17,00|0,00|0,00|
|C470|07898912405081|1|0|UN|2,75|040|5102|0,00|0,00|0,00|
|C470|07896948100123|2|0|UN|7,50|040|5102|0,00|0,00|0,00|
|C470|07891080000300|1|0|UN|2,33|060|5102|0,00|0,00|0,00|
|C470|07891080000300|1|0|UN|2,33|060|5102|0,00|0,00|0,00|
|C470|07897276900546|5|0|UN|12,45|020|5102|12,00|0,00|0,00|
|C470|07898390620013|8|0|UN|15,92|020|5102|12,00|0,00|0,00|
|C470|07898245530016|2|0|UN|4,30|040|5102|0,00|0,00|0,00|
|C470|07898219640017|3|0|UN|6,30|040|5102|0,00|0,00|0,00|
|C470|07898138980010|2|0|UN|4,58|060|5102|0,00|0,00|0,00|
|C470|07896264600796|10|0|UN|13,80|060|5102|0,00|0,00|0,00|
|C470|07891091011913|2|0|UN|5,50|020|5102|12,00|0,00|0,00|
|C470|07898050580053|3|0|UN|8,25|000|5102|17,00|0,00|0,00|
|C470|07898903594305|1|0|UN|8,25|000|5102|17,00|0,00|0,00|
|C470|00000000000380|3|0|UN|14,97|000|5102|17,00|0,00|0,00|
|C470|07896183000417|1|0|UN|2,60|000|5102|17,00|0,00|0,00|
|C470|07896183000417|1|0|UN|2,60|000|5102|17,00|0,00|0,00|
|C470|07896036090244|6|0|UN|19,14|020|5102|12,00|0,00|0,00|
|C470|07896051131069|1|0|UN|2,95|000|5102|17,00|0,00|0,00|
|C470|07898936717016|1|0|UN|4,80|000|5102|17,00|0,00|0,00|
|C470|07896283002205|1|0|UN|3,99|000|5102|17,00|0,00|0,00|
|C470|07898936717030|1|0|UN|2,85|000|5102|17,00|0,00|0,00|
....

|C400|2D|MP-2100 TH FI|BE05100000000000|005|
|C405|11022011|001|000003|000204|4950,62|4950,44|
|C420|01T1700|2095,91|01||
|C420|02T1200|1055,45|02||
|C420|F1|1020,77|||
|C420|I1|519,73|||
|C420|Can-T|209,37|||
|C460|2D|00|000024|11022011|401,38|||||
|C470|07892840800406|2|0|UN|3,78|060|5102|0,00|0,00|0,00|
|C470|07891991002561|2|0|UN|3,78|060|5102|0,00|0,00|0,00|
|C470|00000000000093|2,425|0|KG|13,55|020|5102|12,00|0,00|0,00|
|C470|00000000000037|1,11|0|KG|19,96|000|5102|17,00|0,00|0,00|
|C470|00000000000086|1,33|0|KG|10,30|020|5102|12,00|0,00|0,00|
|C470|00000000000065|1|1|KG|6,65|000|5102|17,00|0,00|0,00|
|C470|00000000000065|1,26|0|KG|8,37|000|5102|17,00|0,00|0,00|
|C470|00000000000056|1,015|0|KG|14,86|020|5102|12,00|0,00|0,00|
|C470|00000000000052|1,035|0|KG|7,95|000|5102|17,00|0,00|0,00|
|C470|00000000000056|1,07|0|KG|15,67|020|5102|12,00|0,00|0,00|
|C470|00000000000046|1,33|0|KG|5,97|000|5102|17,00|0,00|0,00|
|C470|00000000000056|1,35|0|KG|19,77|020|5102|12,00|0,00|0,00|
|C470|00000000000641|1,5|0|KG|9,73|020|5102|12,00|0,00|0,00|
|C470|00000000000049|0,64|0|KG|5,60|000|5102|17,00|0,00|0,00|
|C470|00000000000001|0,93|0|KG|1,95|040|5102|0,00|0,00|0,00|
|C470|00000000000013|2,41|0|KG|3,83|040|5102|0,00|0,00|0,00|
|C470|00000000000014|0,815|0|KG|2,35|000|5102|17,00|0,00|0,00|
|C470|00000000000010|1,505|0|KG|3,37|040|5102|0,00|0,00|0,00|
|C470|00000000000011|0,755|0|KG|1,50|040|5102|0,00|0,00|0,00|
|C470|00000000000030|0,385|0|KG|2,02|000|5102|17,00|0,00|0,00|
|C470|00000000000021|1,425|0|KG|3,97|040|5102|0,00|0,00|0,00|
|C470|00000000000008|1,545|0|KG|2,08|040|5102|0,00|0,00|0,00|
|C470|07896213000189|5|0|UN|4,65|060|5102|0,00|0,00|0,00|
|C470|07891152321197|3|0|UN|5,97|060|5102|0,00|0,00|0,00|
|C470|07898366930023|3|0|UN|2,97|020|5102|12,00|0,00|0,00|
|C470|07898080640222|5|0|UN|6,25|000|5102|17,00|0,00|0,00|
|C470|07891000011287|1|0|UN|7,49|000|5102|17,00|0,00|0,00|
|C470|07898327050074|1|0|UN|5,99|000|5102|17,00|0,00|0,00|
|C470|07891008367027|1|0|UN|11,99|000|5102|17,00|0,00|0,00|
|C470|07891152222456|3|0|UN|5,22|060|5102|0,00|0,00|0,00|
|C470|07896012300268|1|0|UN|3,59|020|5102|12,00|0,00|0,00|
|C470|07897276900546|1|0|UN|2,49|020|5102|12,00|0,00|0,00|
|C470|07891152333084|3|0|UN|8,25|060|5102|0,00|0,00|0,00|
|C470|07891152223149|2|0|UN|4,50|060|5102|0,00|0,00|0,00|
|C470|07891152222142|1|0|UN|2,65|060|5102|0,00|0,00|0,00|
|C470|07898080640413|3|0|UN|6,87|000|5102|17,00|0,00|0,00|
|C470|07891000032428|1|0|UN|5,55|000|5102|17,00|0,00|0,00|
|C470|07891000009437|1|0|UN|3,99|000|5102|17,00|0,00|0,00|
...
|C990|86588|
|D001|1|
|D990|2|
|E001|1|
|E990|2|
|G001|1|
|G990|2|
....
|H990|4267|
|1001|1|
|1990|2|
|9001|0|
|9900|0000|1|
|9900|0001|1|
|9900|0005|1|
|9900|0100|1|
|9900|0190|5|
|9900|0200|4264|
|9900|0500|1|
|9900|0990|1|
|9900|C001|1|
|9900|C100|138|
|9900|C170|45|
|9900|C190|121|
|9900|C400|4|
|9900|C405|46|
|9900|C410|18|
|9900|C420|250|
|9900|C460|11494|
|9900|C470|74055|
|9900|C490|415|
|9900|C990|1|
|9900|D001|1|
|9900|D990|1|
|9900|E001|1|
|9900|E990|1|
|9900|G001|1|
|9900|G990|1|
|9900|H001|1|
|9900|H005|1|
|9900|H010|4264|
|9900|H990|1|
|9900|1001|1|
|9900|1990|1|
|9900|9001|1|
|9900|9900|36|
|9900|9990|1|
|9900|9999|1|
|9990|39|
|9999|95177|


#2 GabrielGD

    Membro - Novato

  • Membros
  • Pip
  • 4 posts
  • Você é Humano?:Sim
  • Sexo:Masculino
  • Estado:São Paulo

Adicionado 13 June 2011 - 04:12 PM

Cara, não sei se pode ser esse problema, mais já passei por algo parecido.

Conforme vai gerando os registros voce armazena tudo em uma unica variável do tipo String para depois gravar um arquivo texto com o contéudo completo da variável?

Caso sim, quebre o armazenamento em diversas váriaveis, por exemplo, uma para cada registro e tambem é interessante, armzenar os campos do registro em variaveis distintas pra depois concatená-las e formar uma linha do registro.

Exemplo:

linha_01 = |C420
linha_02 = |02T1200
linha_03 = |671,55
linha_04 = |02
linha_05 = ||
registroC420 += linha_01 & linha_02 & linha_03 & linha_04 & linha_05 & quebraLinha
...
...
...
ai no final

SPED = registroC400 & registroC405 & registroC420

Depois grava o conteudo da variavel SPED no arquivo texto.
Bom, não sei se no seu caso é isso, mais comigo aconteceu, conforme ia aumentando o tamanho da variável String a máquina ia ficando cada vez mais lentaaaaaaaaaa.





1 usuário(s) esta(ão) lendo este tópico

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)