Существует действительно хорошая статья от Microsoft Research под названием To Blob or Not To Blob.
Их вывод после большого количества тестов производительности и анализа заключается в следующем:
если ваши фотографии или документ, как правило, ниже 256К в размере, сохраняя их в базе данных столбца VARBINARY является более эффективным
, если ваши изображения или документы обычно имеют размер более 1 МБ, а их хранение в файловой системе более эффективно (и с атрибутом FILESTREAM от SQL Server 2008 они все еще находятся под транзакционным управлением и частью базы данных)
между этими двумя, это немного жеребьевкой в зависимости от вашего использования
Если вы решили поместить свои фотографии в таблицу SQL Server, я настоятельно рекомендую использовать отдельную таблицу для хранения тех, фотографии - не храните фотографию сотрудника в таблице сотрудников - держите их в отдельной таблице. Таким образом, таблица Employee может оставаться скудной, средней и очень эффективной, предполагая, что вам не всегда нужно выбирать фото сотрудника, как часть ваших запросов.
Для файловых групп ознакомьтесь с Files and Filegroup Architecture для вступления. В принципе, вы либо создадите свою базу данных с отдельной файловой группой для больших структур данных с самого начала, либо добавите дополнительную файловую группу позже. Назовем его «LARGE_DATA».
Теперь, когда у вас есть новая таблица для создания которых необходимо для хранения VARCHAR (MAX) или VARBINARY (MAX) колонки, вы можете указать эту группу файлов для больших объемов данных:
CREATE TABLE dbo.YourTable
(....... define the fields here ......)
ON Data -- the basic "Data" filegroup for the regular data
TEXTIMAGE_ON LARGE_DATA -- the filegroup for large chunks of data
Отъезд MSDN вводите в файловые группы и играйте с ним!
Да, тип данных 'IMAGE' устарел с 2005 года - вместо этого используйте' VARBINARY (MAX) '. –