[firebase-br] Tamanho do campo Blob - Teste

Artur Anjos listas em arturanjos.com
Sex Ago 22 10:21:27 -03 2008


Jhosef,

O Firebird usa "paginas". No caso dos blobs, se estes forem maior que o 
tamanho da pagina, eles são armazenados em "blob pages".
Por exemplo, se o teu banco tiver uma pagina de 4k e o teu blob 17K, 
este será guardado em 5 paginas, desperdiçando quase 3K (este exemplo é 
muito grosseiro, há mais coisas em jogo, mas isto dá-te uma ideia). O 
que fica guardado nas "data pages", que gaurda o teu registo, é um 
pointer para a blob page.

Mas há mais variaveis tambem a considerar: no teu banco, e nos teus 
testes, nao dizes se estás a alterar os blobs, por exemplo. Quando se 
altera um "blob grande" o firebird guarda primeiro o novo blob, depois 
marca as "blob pages" do anterior como disponiveis e serão utilizadas 
pelo proximo blob. Isto é, a tua base de dados cresceu na altura, mas 
tem espaço que vai ser re-utilizado.

Para veres o que pretendes, tens que fazer backup e restore após os 
testes. Isso dar-te-à uma ideia melhor.

Artur Anjos
Firebird'it with us: http://www.serverptbr.com

Jhosef Marks wrote:
> Bom dia pessoal.
>
> Tenho uma tabela e preciso adicionar uma campo blob para armazenar textos
> formatados nesse novo campo.
> Fiz um teste para ver qual a proporção q isso iria criar no tamanho fisico
> do banco, agora olhem os resultados e me digam q estou completamente errado
> por favor...
> Um comparativo do antes e depois de adicionar um campo blob e inserir um
> valor padrão nele.
>
> Banco 1 - 38.541 registros
> Antes:
> Tamanho: 550 Mb
> Depois:
> Tamanho: 853 Mb
>
> Banco 2 - 14.719 registros
> Antes:
> Tamanho: 193 Mb
> Depois:
> Tamanho: 248 Mb
>
> Como é possivel o banco aumentar praticamente quase 50% sendo q no banco
> existe várias tabelas com campos blob do mesmo tipo???
>
>   





Mais detalhes sobre a lista de discussão lista