Ответ 1
Там действительно хорошая статья от Microsoft Research под названием В Blob или 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 в файловых группах и поиграйте с ним!