Загрузить изображение в SQL Server 2008 - PullRequest
1 голос
/ 04 мая 2011

Я вижу, что SQL Server 2008 имеет тип поля изображения, я хочу использовать элемент управления FileUpload VS 2010 (c #), чтобы позволить пользователям загружать логотип рядом с их профилем в нашей базе данных, может кто-нибудь подсказать мне, как сделать это?

еще раз спасибо

1 Ответ

5 голосов
/ 04 мая 2011

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

Их заключение после большого количества тестов и анализа производительности таково:

  • , если размер ваших фотографий или документа обычно меньше 256 КБ, и сохраните их встолбец базы данных VARBINARY более эффективен

  • , если размер ваших изображений или документа обычно превышает 1 МБ, их хранение в файловой системе более эффективно (и с атрибутом FILESTREAM в SQL Server 2008 онивсе еще находится под контролем транзакций и является частью базы данных)

  • между этими двумя, это немного путаница в зависимости от вашего использования

Если вы решили поместить свои изображения в таблицу SQL Server, я настоятельно рекомендую использовать отдельную таблицу для хранения этих изображений - не храните employee фото в таблице сотрудников - держать их в отдельной таблице.Таким образом, таблица «Сотрудник» может оставаться скудной, средней и очень эффективной, при условии, что вам не всегда нужно также выбирать фотографию сотрудника в качестве части ваших запросов.

Для файловых групп проверьте Файлы и файловая архитектура для вступления.По сути, вы либо создадите базу данных с отдельной файловой группой для больших структур данных с самого начала, либо добавите дополнительную файловую группу позже.Давайте назовем это «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 в файловых группах и поэкспериментируйте с ним!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...