2010-12-15 2 views
13

Я не являюсь администратором базы данных, поэтому я просто не знаю, какие проблемы и недостатки используют различные методы хранения двоичных данных на SQL Server.SQL Server: как хранить двоичные данные (например, файл Word)?

  • varbinary(n) хранит только 8000 байтов
  • varbinary(max) магазины 2 GB
  • BLOB s предназначены для больших файлов, но приходят с «административной» накладных расходов (файлы которые обозначены только в БД, но на самом деле, сидя на местный жесткий диск)

У меня в основном около 1000 документов (в год), которые я хочу хранить в базе данных SQL Server 2008 R2 (заполняется простой загрузкой ASPX-формы, просматривается простым Gridview с загрузкой). Все документы, вероятно, будут составлять около 2 МБ - 8 МБ (файлы Word, Excel). Моя предположение является то, что я должен использовать таблицу MyDocuments со следующей планировкой:

MyDocuments 
    Data  varbinary(max) 
    Title  varchar(255) 
    ModifiedOn datetime() 
    ModifiedBy varchar(100) 

Я на трассе с varbinary(max)? Или я иду в неправильном направлении (например, по производительности)?

+0

Лучше бы сжать их, а затем пойти на один сохранить. – 2010-12-15 13:35:56

+0

Не вариант, поскольку они являются отдельными документами, которые упоминаются как отдельные документы в GridView. Подумайте о системе управления документами. – 2010-12-15 13:41:07

ответ

16

В хранилище данных «FILESTREAM» имеется хранилище «FILESTREAM» на SQL Server 2008. Он позволяет хранить и эффективно получать данные BLOB с использованием комбинации SQL Server 2008 и файловой системы NTFS.

Вы можете проверить эти из:

FILESTREAM Storage in SQL Server 2008
Saving and Retrieving File Using FileStream SQL Server 2008

EDIT:
объектов меньше, чем 256К лучше всего хранить в базе данных, а объекты размером более 1М лучше всего хранить в файловой системе.

Производительность: Varbinary против FILESTREAM

http://www.sqlskills.com/BLOGS/PAUL/post/SQL-Server-2008-FILESTREAM-performance.aspx
To BLOB or Not To BLOB: Large Object Storage in a Database or a Filesystem
SQL Server 2008 FILESTREAM performance

Смежные вопросы