Estou pensando em usar um banco de dados para armazenar uma ou mais imagens ( .JPG ) associadas a um identificador de registro e nome de arquivo.
CREATE TABLE Images (
RecordID BIGINT NOT NULL,
ImageFilename VARCHAR(50) NOT NULL,
ImageData VARBINARY(MAX) --expected avg. size: 256K
)
Prevejo que 90% da utilização do espaço no banco de dados virá dos BLOBs. Eu sei que a compactação de dados do SQL Server não compactará os dados BLOB por meio da compactação de linha ou página. Posso esperar alguma economia ao compactar os backups, além da compactação que ocorre nos campos RecordID e ImageFilename?
Finalmente fui em frente e obtive um banco de dados de teste carregado com dados. A estrutura da tabela é:
A tabela foi carregada com aproximadamente 2,8 milhões de registros. O valor FullImage foi definido e o valor ThumbnailImage foi deixado como NULL para cada registro.
O banco de dados em si tem 154 GB de tamanho. O backup descompactado tem 154 GB de tamanho. O backup compactado tem 134 GB de tamanho.
Dado que os dois campos PK respondem por aproximadamente 24 GB (2,8 milhões de registros * 9 bytes/registro), parece que a única economia da compactação está sendo realizada comprimindo os campos PK.