Главная
Новости
Строительство
Ремонт
Дизайн и интерьер

















Яндекс.Метрика





FileStream



FileStream — хранилище данных, позволяющее связать MS SQL Server и файловую систему. Позволяет хранить данные на NTFS диске и управлять ими, используя движок базы данных. К данным предоставляется потоковый доступ. FileStream впервые появился в MS SQL 2008, доступен во всех изданиях, включая Express.

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

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

FileStream и MSSQL Server

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

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

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

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