[firebase-br] shrink database

Marcelo Geyer estanisgeyer em gmail.com
Seg Jan 14 12:09:05 -03 2019


Você chegou a fazer testes com uma tabela dedicada para blobs? Eu penso que
separar por banco de dados, você perderia a integridade referencial.

Em seg, 14 de jan de 2019 08:57, Mário Reis <mariodosreyx em gmail.com
escreveu:

> Prezados amigos,
> Perdoem por me imiscuir na V/ conversa, mas fiz o mesmo.
> No inicio ainda a medo, porque me deu bastante trabalho separa-los, criei
> duas databases, separando completamente uma só com blobs de imagens e
> texto(cópias de contratos), por exemplo, e os ganhos foram absolutos.
> Agora faço sempre assim e recomendo.
> Abraço
>
> Com os meus melhores cumprimentos
> Mário Agostinho Reis
> 919262146
>
> Esta mensagem contém informação de natureza confidencial e é
> exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por engano,
> receber este email agradecemos que não o copie nem o reenvie e que nos
> notifique do ocorrido através do email de resposta.
>
>
> Eduardo Jedliczka <edujed em gmail.com> escreveu no dia quinta, 10/01/2019
> à(s) 16:31:
>
> > Não seria muito mais simples realizar o parsing dos arquivos XML e gravar
> > em tabelas do tipo pai-> [chave-> valor] ?
> >
> > Ainda teria o benefício de permitir o uso de índices para
> localizar/filtrar
> > os valores.
> >
> > Outra forma seria implementar (embora não exista nativamente no FB) um
> > DICTIONARY (ter uma tabela de palavras e substituí-las antes de gravar
> > CLOB).
> >
> > ==========================
> > Eduardo Jedliczka
> > Curitiba - Pr
> > ==========================
> >
> >
> > Em sáb, 15 de dez de 2018 às 14:44, Eder <edercotta em gmail.com> escreveu:
> >
> > > Boa tarde Gladiston  Santana,
> > >
> > > Obrigado pela colaboração.
> > >
> > > A base de dados onde armazenamos os arquivos .XML já é separada no
> volume
> > > principal.
> > >
> > > O que tem me preocupado é o crescimento desproporcional ao tamanho em
> > disco
> > > dos arquivos .XML.
> > >
> > > Pretendo fazer alguns testes alterando o tamanho da página para 8K.
> > >
> > > Abraços!
> > >
> > > Em sex, 14 de dez de 2018 às 11:28, Gladiston Santana <
> > > gladiston em vidy.com.br>
> > > escreveu:
> > >
> > > > Uma sugestão, se seus dados sistêmicos estão no mesmo database fisico
> > com
> > > > os blobs, e esses blobs são raramente utilizados - ou estão mais para
> > > serem
> > > > arquivados -, talvez você possa analisar a separação em databases
> > fisicos
> > > > distintos.
> > > > Aqui, eu separei uma tabela de imagens do restante dos dados, ficando
> > um
> > > > database físico só para as imagens.
> > > > Fiz isso porque as imagens não tinham tanta movimentação, tava mais
> > para
> > > > arquivamento mesmo, contudo exercia grande impacto no tamanho do
> > > database e
> > > > consequentemente no backup.
> > > > Já que me faltava uma jóia do infinito para mudar a realidade, então
> > fiz
> > > > profunda meditação zen e conclui que seria melhor separar os
> databases
> > > para
> > > > resolver o tempo de backup, pois o tempo de backup era sofrível. Eu
> sou
> > > > meio paranóico com isso!
> > > > Depois de algum tempo, percebi que separa-los foi uma boa ideia
> porque
> > o
> > > > backup dessas imagens pode ser diaria ou semanal enquanto os dados
> que
> > > são
> > > > mais vitais são resolvidos em intervalo de horas.
> > > > Mais tarde, repeti a mesma técnica e tirei dos dados vitais o que
> seria
> > > > banco de dados de ceps e cnpj´s que também se tornaram externos.
> > > > Para não ter que fazer meu programa se conectar a 3 ou 4 databases
> > > > diferentes, eu criei uma procedure no banco principal que faz a
> > > > chamada/consulta nos outros usando:
> > > > [for] execute statement ... on external
> > > > e apesar de não ser performático, pois cada chamada perde o tempo de
> 1s
> > > > para fazer a conexão externa, mas resolve o incomodo de mudar meu
> > > programa
> > > > para manter conexões simultaneas a databases distintos - eu até
> poderia
> > > ter
> > > > feito isso, mas não estava disposto.
> > > > Também o banco de imagens tem um tamanho de página mais adequada
> para o
> > > > tamanho de blob, pois anteriormente minhas páginas eram de 16k, então
> > > > guardar pequenas figuras que eram menores que 4k desperdiçava outros
> > 12k
> > > em
> > > > disco.
> > > > Enfim, foi muito boa a mudança e talvez você possa analisar se isso
> > seria
> > > > bom para você também.
> > > >
> > > > []´s
> > > >
> > > > Em qui, 13 de dez de 2018 às 13:27, Eder <edercotta em gmail.com>
> > escreveu:
> > > >
> > > > > Obrigado pela resposta.
> > > > >
> > > > > No caso mencionado anteriormente a tabela é exclusiva para BLOB.
> > > > >
> > > > > Utilizamos o campo BLOB para armazenar arquivos .XML de NFs.  O
> > > detalhe é
> > > > > que a tabela possui dois campos BLOBs, XML de envio e retorno.
> > > > >
> > > > > Fiz alguns testes para identificar o impacto desta tabela no
> tamanho
> > do
> > > > > banco.
> > > > >
> > > > > O tamanho físico do banco era de 16GB.
> > > > > Page Size configurado com valor 4096.
> > > > >
> > > > > O Database Analyst mostrou que o size da tabela é 748mb.
> > > > >
> > > > > Fiz BACKUP e RESTORE no banco, reduziu de 16GB para 13GB em disco.
> O
> > > > > Database
> > > > > Analyst mostrou que o size da tabela caiu para 723mb.
> > > > >
> > > > > Para entender o quanto essa tabela representa em disco, executei o
> > > DROP,
> > > > > realizei BACKUP e RESTORE no banco. O tamanho do banco reduziu de
> > 13GB
> > > > para
> > > > > 2GB.
> > > > >
> > > > > Conclusão: a tabela está ocupando cerca de 11GB em disco.
> > > > >
> > > > > Se puder me apontar uma direção para reduzir o tamanho em disco,
> > > > > agradeço muito.
> > > > >
> > > > > Abraços!
> > > > ______________________________________________
> > > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > > Para consultar mensagens antigas:
> > > > http://www.firebase.com.br/pesquisa_lista.html
> > > >
> > >
> > >
> > > --
> > >
> > > *Eder Pelinçari*
> > > Software engineer / Project Manager
> > > "Se você esperar pelas condições perfeitas, nunca vai fazer nada."
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas:
> > > http://www.firebase.com.br/pesquisa_lista.html
> > >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas:
> > http://www.firebase.com.br/pesquisa_lista.html
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>



Mais detalhes sobre a lista de discussão lista