Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Melhor maneira de armazenar uma string grande no banco de dados do SQL Server?


No SQL Server 2008, você tem a opção de usar FILESTREAM para armazenar grandes dados binários. Nesse caso, os dados estarão disponíveis em consultas, mas armazenados fisicamente no sistema de arquivos.

A Microsoft publicou um Artigo técnico do SQL Server que contém informações úteis sobre como e quando usar FILESTREAM . Na 8ª página, o gráfico de comparação mostra que o FILESTREAM tem vantagem sobre BLOBs armazenados no banco de dados se os dados armazenados forem maiores que 1 MB .

OBSERVAÇÃO FILESTREAM não está disponível no SQL Server 2005! (E SQL Server 2005 não é mais suportado pela Microsoft - exceto o suporte estendido)

Mais alguns artigos para ler

Você pode ver alguns gráficos de comparação no blogue SQLSkills sobre seu desempenho.

A Microsoft Research também publicou um Artigo técnico:Para BLOB ou não para BLOB sobre fluxos de arquivos e BLOBS.

Você pode tentar, mas como sempre, você precisa executar algum teste específico do ambiente para ter certeza de que essa solução funciona ou não. Se este for um produto no mercado, é uma boa ideia implementar o suporte FILESTREAM como um recurso de ativação ou desativação.

Apenas uma observação

NVARCHAR é duas vezes maior que VARBINARY porque o SQL Server armazena cada caractere em 2 bytes no unicode (NCHAR , NVARCHAR , etc) colunas.