Entendendo e Configurando Filestream para Gerenciamento de Arquivos no SQL Server

Introdução
Se você trabalha com dados que incluem arquivos grandes, como documentos PDF, imagens ou vídeos, provavelmente já enfrentou desafios relacionados ao armazenamento e ao gerenciamento desses arquivos. O SQL Server oferece uma funcionalidade poderosa chamada FILESTREAM, projetada para armazenar arquivos binários fora das tabelas tradicionais, mantendo ainda a integração com o banco de dados. Neste artigo, vamos explorar o conceito do FILESTREAM, os cenários de uso, e como configurá-lo passo a passo para maximizar o desempenho e a eficiência.
Ao final do artigo, você entenderá como o FILESTREAM pode ajudar a gerenciar arquivos de maneira mais eficiente e como nossa consultoria pode oferecer suporte nessa implementação.
O que é o FILESTREAM no SQL Server?
O FILESTREAM é uma funcionalidade do SQL Server que permite armazenar dados BLOBs (Binary Large Objects) diretamente no sistema de arquivos do Windows, mas mantendo uma referência no banco de dados. Isso significa que arquivos grandes não ocupam espaço desnecessário no MDF (arquivos de dados do SQL Server), mas são totalmente gerenciados pelo banco de dados.
Quando usar FILESTREAM:

Gerenciamento de arquivos grandes (acima de 1 MB).

Necessidade de transações ACID para arquivos.

Backup integrado entre banco de dados e arquivos.
Benefícios do FILESTREAM
1.
Desempenho Melhorado: O acesso a arquivos grandes é mais rápido no sistema de arquivos do que dentro do banco de dados.
2.
Gerenciamento Simplificado: Integração entre os dados estruturados e não-estruturados.
3.
Transações ACID: O FILESTREAM suporta transações para garantir integridade entre arquivos e dados.
4.
Backup Integrado: Backups do banco de dados também incluem os arquivos gerenciados pelo FILESTREAM.
5.
Escalabilidade: Armazenamento de arquivos de qualquer tamanho sem impactar o desempenho do banco de dados.
Configurando o FILESTREAM no SQL Server
1. Verifique os Pré-requisitos
Antes de começar, certifique-se de que:

Você tem permissão de administrador no servidor SQL Server.

O SQL Server está na edição que suporta FILESTREAM (Standard ou superior).
2. Habilitando o FILESTREAM no SQL Server
1.
Acesse o SQL Server Configuration Manager.
2.
No painel esquerdo, expanda SQL Server Services.
3.
Clique com o botão direito no seu serviço do SQL Server e selecione Propriedades.
4.
Na aba FILESTREAM, habilite as opções:
o
“Enable FILESTREAM for Transact-SQL access”
o
“Enable FILESTREAM for file I/O streaming access”
5.
Defina o nome do compartilhamento do Windows que será usado para os arquivos.
3. Configurando o FILESTREAM no SQL Server (T-SQL)
Após habilitar o FILESTREAM, siga os passos abaixo:
a. Habilite o FILESTREAM em Nível de Instância
EXEC sp_configure ‘show advanced options’, 1;
RECONFIGURE;
EXEC sp_configure ‘filestream access level’, 2;
RECONFIGURE;

O valor 2 habilita o acesso via Transact-SQL e streaming I/O.
b. Crie um Banco de Dados com FILESTREAM
CREATE DATABASE FileStreamDB
ON
PRIMARY ( NAME = FileStreamData, FILENAME = ‘C:\FileStreamData\FileStreamDB.mdf’ ),
FILEGROUP FileStreamGroup CONTAINS FILESTREAM ( NAME = FileStreamFG, FILENAME = ‘C:\FileStreamData\FileStreamFiles’ )
LOG ON ( NAME = FileStreamLog, FILENAME = ‘C:\FileStreamData\FileStreamDB_log.ldf’ );
c. Crie uma Tabela com FILESTREAM
USE FileStreamDB;
CREATE TABLE Documentos (
DocumentoID UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL UNIQUE,
NomeArquivo NVARCHAR(255),
Conteudo VARBINARY(MAX) FILESTREAM NULL
);

A coluna Conteudo utiliza o FILESTREAM.

A coluna ROWGUIDCOL é obrigatória para gerenciar os arquivos.
4. Inserindo e Recuperando Arquivos
Inserindo um Arquivo
INSERT INTO Documentos (DocumentoID, NomeArquivo, Conteudo)
VALUES (NEWID(), ‘exemplo.pdf’, CAST(‘Conteúdo do arquivo’ AS VARBINARY(MAX)));
Recuperando um Arquivo
SELECT NomeArquivo, Conteudo
FROM Documentos;
Casos de Uso para FILESTREAM
O FILESTREAM é ideal para aplicações como:

Sistemas de gerenciamento de documentos.

Armazenamento de imagens e vídeos.

Backup integrado de arquivos associados a registros do banco de dados.
Por exemplo, empresas de arquitetura, engenharia ou saúde que precisam gerenciar arquivos pesados podem se beneficiar significativamente.
Nossa Solução de Consultoria
Implementar o FILESTREAM pode parecer simples, mas a configuração correta e o ajuste de desempenho exigem expertise. Nossa empresa oferece:

Análise de Requisitos: Avaliamos seu ambiente e identificamos a necessidade de implementar o FILESTREAM.

Configuração Completa: Implementamos e otimizamos o FILESTREAM em seu SQL Server.

Monitoramento e Suporte: Garantimos o desempenho contínuo e seguro do armazenamento.
Com anos de experiência como DBAs SQL Server, ajudamos empresas a transformar a gestão de arquivos, ganhando eficiência e desempenho.
Conclusão
O FILESTREAM é uma ferramenta poderosa no SQL Server para armazenar arquivos de maneira eficiente e integrada. Se você tem dificuldades com grandes volumes de arquivos ou quer otimizar sua solução de dados, entre em contato conosco para uma consultoria especializada.
Transforme a gestão dos seus arquivos com a expertise que o seu negócio merece!
Acesse o site DBA REMOTO e descubra como podemos ajudar o seu projeto.

Deixe um comentário

© Copyright 2023 - DBA Romoto

Desenvolvido: Renan Paulon