MS SQL + Filestream

Для работы с хранилищем FileStream необходимо включить его на уровне сервера, создать специальную файловую группу и включить в неё файл, указав вместо имени файла желаемую директорию.

После этого в указанной директории появится заголовочный файл, директория для хранения лога и директории для хранения данных. Последние будут иметь имена вида GUID.

MS SQL Server обрабатывает данные хранилища как varbinary. Доступ к данным предоставляется в контексте транзакции, начиная с SQL Server 2008 и вне транзакции (начиная с SQL Server 2012). Данные кэшируются, не шифруются. На файловую группу, содержащую Filestream накладываются определённые ограничения:

  1. Данные могут быть вставлены
  2. Удалены или изменены с использованием стандартных T-SQL запросов или с помощью внешнего интерфейса API
  3. Файловая группа, содержащая Filestream, не поддерживает моментальные снимки. Но поддерживается репликация и полнотекстовый поиск
  4. Обеспечено резервное копирование данных, хранящихся в Filestream

FileStream и файловая система:

Данные, хранящиеся в FileStream, доступны для просмотра и редактирования внешними программами, например, программой просмотра изображений или текстовым редактором. Однако, имена файлов не имеют значимого названия, и невозможно, используя системные процедуры или представления базы данных, определить имя файла, соответствующего массиву данных.

Этот недостаток был устранён в SQL Server 2012 с введением особого типа таблиц FileTable. Начиная с SQL 2012, данные стали доступны вне контекста транзакции по виртуальному UNC-пути. FileStream не попадает под ограничения на размер данных (2Гб) и на размер базы данных (4Гб), существующий в версии SQL Express.

Возврат к списку