2009-02-25 3 views
1

У меня проблема с большой базой данных, с которой я работаю, которая находится на одном диске - эта база данных содержит около десятка таблиц с двумя основными из них около 1 ГБ каждая, которые не могут быть уменьшены. Моя проблема в том, что дисковая очередь для диска базы данных составляет от 96% до 100%, даже если сайт, использующий БД, простаивает. Какая оптимизация может быть выполнена или что является источником проблемы, DB на диске составляет 16 ГБ в общей сложности, и почти все данные необходимы - данные транзакций, информация о клиентах и ​​сведения о запасах.
Каковы причины того, что очередь дисков всегда высока независимо от трафика веб-сайта?
Что можно сделать, чтобы повысить производительность в базе данных такого размера?Очередь диска базы данных слишком высока, что можно сделать?

Любые предложения будут оценены!

База данных - это база данных MS SQL 2000, работающая под управлением Windows Server 2003 и имеющая размер 16 ГБ (размер файла данных на диске).

Благодаря

ответ

1

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

Поскольку база данных настолько велика, вы можете захотеть добавить два отдельных физических диска, а затем положить журнал транзакций на один диск и разбить некоторые другие таблицы на другой диск (вам нужно сделать некоторый анализ, чтобы увидеть что лучший раскол между таблицами).

При этом вы разрешаете доступ к IO параллельно, а не последовательно, что должно дать вам более высокую производительность вашей БД.

+0

Удалось найти некоторые способы уменьшения очереди дисков с некоторыми старыми данными, находящимися в БД, и таблицы на других дисках тоже очень интересны, если накладные расходы на производительность не превышают любой выигрыш от этого. Благодаря! – RoguePlanetoid

1

Прежде чем покупать больше дисков и перемещать вещи, вы также можете обновить статистику и проверить свои запросы - если вы делаете много сканирований таблиц и т. Д., Вы создадите ненужную работу для аппаратного обеспечения.

Ваша база данных не такая уж большая - я бы сначала посмотрел на настройку ваших запросов. Профилировали ли какие-то запросы в базе данных?

1

Если вы занимаетесь активным диском, когда ваш сайт простаивает, я бы поискал другие процессы, которые могут быть запущены, что может повлиять на него. Например, уверены ли вы, что запланированные резервные копии не выполняются? Особенно с большим db, они могут работать в течение длительного времени.

Как указывал Майк W, обычно существует много возможностей оптимизации запросов с использованием существующего оборудования. Изолируйте медленные запросы и найдите способы их оптимизации в первую очередь. В одном из наших приложений мы потратили буквально 2 месяца на это и смогли значительно улучшить производительность приложения и использование оборудования.