Слишком высокая очередь диска базы данных, что можно сделать? - PullRequest
1 голос
/ 25 февраля 2009

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

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

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

Спасибо

Ответы [ 3 ]

1 голос
/ 25 февраля 2009

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

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

1 голос
/ 26 февраля 2009

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

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

1 голос
/ 25 февраля 2009

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

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

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

...