Esse artigo faz parte da revista SQL Magazine edição 64. Clique aqui para ler todos os artigos desta edição
s nossos leitores, temos diferentes abordagens de resolução, e cada uma com seus pontos fortes e fracos que precisam ser analisados com cuidado. Jim Gray e companhia nos ajudaram a entender melhor o problema com o artigo “To blob or not to blob” (http://research.microsoft.com/research/pubs/view.aspx?msr_tr_id=MSR-TR-2006-45), onde ressalta que arquivos de até 256 Kbytes têm melhor desempenho se manipulados dentro do banco de dados, enquanto arquivos maiores que 1 Mbyte deveriam ser colocados no sistema de arquivos e, para arquivos um uma área intermediária entre 256 Kbytes e 1 Mbyte, deve-se levar em conta outros fatores como taxa de leitura/escrita, sobrescrita de dados, entre outros. Mesmo com essa ajuda, ainda assim continuávamos com outros problemas na manutenção e gerenciamento dos dados, que precisavam ser tratados pela aplicação e nem sempre de maneira simples.
Para ajudar na resolução do problema acima, dentre as várias novidades que o SQL Server 2008 trouxe para desenvolvedores e administradores de banco de dados, um dos recursos mais aclamados e esperados é a possibilidade de se trabalhar de forma transparente com a manipulação de arquivos binários, integrados com o SQL Server e armazenados no sistema de arquivos.
Neste artigo vamos conhecer o recurso de filestream, analisando a maneira como o SQL Server trabalha de forma integrada com o sistema operacional, além de configurar e utilizar essa nova funcionalidade.
Configuração do filestream
Para habilitarmos a utilização de filestream no SQL Server são necessárias duas ações distintas, onde podemos ter envolvimento de dois cargos dentro da empresa: do administrador Windows (primeira ação) e do administrador de banco de dados (ambas ações).
A primeira ação é configurar a instância através do SQL Server Configuration Manager. Nesta interface, apresentada na Figura 1, podemos habilitar o filestream para acesso através de Transact-SQL (requisito para habilitar o outro modelo de acesso), habilitar acesso através da API de streamming da interface Win32, definir o nome do compartilhamento para acesso aos arquivos e se será permitido acesso de usuários remotos ao compartilhamento criado. Este passo também pode ser configurado diretamente na instalação da instância do SQL Server 2008.

Figura 1. Configuração do Filestream através do Configuration Manager
A segunda ação está vinculada ao nível de acesso do filestream na engine do SQL Server, que pode ser configurado através das propriedades do servidor ou manipulando a configuração “Filestream Access Level” pelo procedimento SP_CONFIGURE. É possível definir três diferentes níveis de acesso: 0 = desabilita o recurso; 1 = habilita somente acesso através do T-SQL; 2 = habilita acesso através do T-SQL e Win32.
...