Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 17 BLOB +UDF.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
407.04 Кб
Скачать

Хранение неструктурированных данных в sql Server 2008

  • FILESTREAM: значение этого атрибута можно установить в столбце varbinary, чтобы данные были сохранены в файловой системе (таким образом используются преимущества и потоковой передачи, и этого способа хранения), но при этом данные доступны напрямую из базы данных, и управление данными осуществляется в контексте этой базы данных;

  • удаленное хранилище BLOB-данных Remote BLOB: программный интерфейс (API), который снижает сложность разработки приложений, использующих BLOB-данные из внешнего хранилища и реляционные данные из базы данных.

  • Кроме того, SQL Server 2008 продолжает поддерживать стандартные столбцы BLOB с типом данных varbinary.

Что такое filestream

  • Varbinary(max), хранящийся не в бд, а в файловой системе

  • Нет ограничения в 2 ГБ, только размером тома

  • Потоковый доступ (за счет стандартных интерфейсов Win32)

  • SQL-ный буферный пул не используется, NT system cache

  • Доступ к файловой системе на удаленной тачке – SMB

  • Файл-группа базы должна иметь атрибут FILESTREAM

  • Вместо файлов БД содержит каталоги файловой системы (контейнеры)

  • Контейнеры не могут быть вложенными

  • Учётная запись SQL Server должна иметь NTFS-права на доступ к контейнерам, раздача прав внутри SQL Server – обычным образом

  • Пока БД открыта, с контейнерами нельзя работать извне SQL Server

  • Интеграция SQL Server-ного движка с NTFS позволяет делать по ним вставку, обновление, запросы, поиск, backup стандартными SQL-ными операторами

  • При кластеризации – на общем диске

Условия использования filestream

В SQL Server большие двоичные объекты (BLOB) могут представлять собой либо стандартный тип varbinary(max), где данные хранятся в таблице базы данных, либо объекты FILESTREAM типа varbinary(max), где данные хранятся в файловой системе. Выбор в качестве хранилища базы данных или файловой системы определяется размером и назначением данных. Объекты FILESTREAM следует использовать в следующих случаях:

    • средний размер сохраняемых объектов превышает 1 МБ;

    • важен быстрый доступ для чтения;

    • в разрабатываемых приложениях для логики приложений используется средний уровень.

При работе с объектами меньшего размера сохранение больших двоичных объектов (BLOB) типа varbinary(max) в базе данных часто позволяет добиться лучшей производительности потоков.

Сравнение вариантов хранения BLOB-данных

Хранение неструктурированных данных в SQL Server 2012

FileTable интеграция БД и файл-сервера

  • Хранить файлы в SQL Server ничуть не хуже, чем в файловой системе

  • На самом деле даже лучше, потому что при этом штатными средствами на раз обеспечивается

    • Транзакционность операций

    • Резервное копирование

    • Сортировка и поиск по атрибутам, полнотекстовый и семантический по содержанию

    • Безопасность, разделение доступа, администрирование на основе политик, ...

  • FileTable – это способ засветить контент, хранящийся в SQLной базе \\<SQL-Server-Machine>\<InstanceShare>\<Database_Directory>\<FileTable_Directory>\

    • Для Windows-приложения FileTable выглядит как обычная папка общего доступа, и оно может читать оттуда файлы, копировать туда новые, создавать директории и т.д.

    • SQL Server перехватывает эти вызовы и интерпретирует их внутри себя в привычные реляционные операции

    • Также над FileTable доступны прямые запросы, обновления и прочие операции средствами T-SQL

Администрирование FileTable

Сравнение FILESTREAM и таблиц FileTable