2010-11-24 3 views
2

Мы получили таблицу базы данных UploadedFiles, где хранится большое количество файлов (400 тыс. На данный момент).Хранение большого количества файлов в базе данных

Получаем ли мы какую-либо выгоду от производительности, если мы переместим фактические данные файла (поле varbinary) в отдельную таблицу?

+0

Насколько велик каждый файл, пожалуйста? – gbn 2010-11-24 20:00:24

ответ

3

Вы можете использовать разделы и поместить это поле в другой раздел. Вот некоторые справочные ссылки:

Замечание При создании разделов для оптимизации производительности размещайте каждый раздел на разных физических дисках.

http://msdn.microsoft.com/en-us/library/ms345146%28SQL.90%29.aspx

http://databases.about.com/od/sqlserver/a/partitioning.htm


ИЛИ сохранить файл в файловой системе и сохранить ссылку на местоположение в поле VARCHAR.

+0

+1 для хранения ссылки на расположение файла. Это, как правило, самое простое решение. – Matt 2010-11-24 22:58:21

1

Если вы на SQL Server 2000/2005 и не FILESTREAM доступны, не забудьте о возможности создания отдельных файловых групп и файлов данных.

Конфигурирование пользовательских файловых групп и размещение их на отдельных физических дисках (или LUN) из объектов системной базы данных, что приводит к повышению производительности. Это также дает вам большую гибкость при выполнении операций резервного копирования и восстановления. Более подробная информация здесь:

http://blogs.msdn.com/b/buckwoody/archive/2009/05/21/sql-server-best-practices-setting-a-default-filegroup.aspx

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