Нужен комментарий эксперта при принятии решения о хранении БД или файловой базы - PullRequest
0 голосов
/ 04 декабря 2010

Привет, ДрузьяУ меня есть приложение, которое хранит тысячи текстовых файлов в базе данных в среднем по 3 КБ каждый.и другая таблица, хранящая краткую информацию о них, которые искали чаще.с 140 000 записей моя база данных работает слишком медленно.

Я думал, что смогу хранить эти файлы на диске, которые уменьшат размер моей базы данных примерно на 80%.Эти файлы хранятся только с целью отображения (чтения содержимого файла и отображения), но не для каких-либо операций с ними над базой данных.но на моем веб-сайте около 1000 пользователей, и я боюсь, что если я сохраню эти файлы на диске, это станет хуже (увеличение операций ввода-вывода на диске, чтение файлов в другом сеансе может увеличить ввод-вывод, перемещая головку жесткого диска вперед и назад плюсне может контролировать чтение файлов только в одной теме)

кто-нибудь имеет опыт работы?Пожалуйста, примите это решение за меня.СПАСИБО СПАСИБО

Ответы [ 2 ]

2 голосов
/ 04 декабря 2010

Если бы у меня было гораздо больше информации, я бы посоветовал вам более глубоко изучить, откуда возникла проблема с производительностью. Эффективны ли ваши запросы, существуют ли индексы для поддержки ваших запросов.

Что касается хранения файлов в базе данных, то это интересно. Я могу только высказать свое личное мнение о том, что, как правило, я предпочел бы хранить файлы на диске и просто хранить ссылку на файл, т.е. путь в базе данных. Но здесь есть много плюсов и минусов, но одна вещь заключается в том, что ваши резервные копии должны охватывать не только резервные копии базы данных.

1 голос
/ 05 декабря 2010

Я приму ваш комментарий Please make this decision for me. THANKS THANKS буквально.

  • Установите не менее 8 гигабайт памяти в сервер БД (лучше кеш SQL)

    Настройте два диска как зеркало и поместите файл журнала для вашего Приложение БД на зеркало. Не делайте сжать этот диск (более быстрая запись в файл журнала)

    Настройка 4 дисков в качестве Raid 10 и поместите БД в Рейд 10. Не сжать этот диск (производительность чтения выше, чем у raid 5)

    Настройка одного диска в качестве расположение tempDB. Не делайте сжать этот диск (изолировать активность tempDB)

    Запускать только SQL Server на сервере.

    Убедитесь, что ваш БД имеет правильный индексы, осматривая пропавшие динамическое представление управления индексами.

    Убедитесь, что у вашего БД есть план обслуживания уменьшить дБ и фрагментацию индекса

    Извлечение и перезагрузка каждого «текста» файлы из базы данных. До загрузка текстового файла сжимать (zip) файл с инструментом вашего выбор. Сохраните «текстовый» файл в тип данных varbinary. Настройте приложение для распаковки файла перед отображением (уменьшите дисковый ввод-вывод для SQL для хранения «текста» и сетевого ввода-вывода для клиента)

    Оцените приложение с помощью известное количество пользователей и поисков

    Сравните ваш эталон с фактическим значения при использовании клиента

    Мониторинг ожидания диска, сетевого ввода-вывода и память на регулярной основе.

Если у вас все еще низкая производительность, заключите договор с администратором базы данных SQL для оценки вашей системы. Я считаю, что PerformanceDBA на этом сайте занимается контрактами.

...