SQL-сервер - высокий буферный ввод-вывод и сетевой ввод-вывод
У меня есть вопрос настройки производительности на сервере SQL.
У меня есть программа, которая должна запускаться каждый месяц, и для ее завершения требуется больше 24 часов. Мне нужно настроить эту программу в надежде, что я смогу сократить время работы до 12 часов или меньше.
Поскольку эта программа не разработана нами, я не могу проверить содержание программы и изменить ее. Все, что я могу сделать, это просто открыть профилировщик SQL-сервера и монитор активности, чтобы отслеживать и анализировать содержимое SQL. Я отключил неиспользуемые триггеры и сделал некоторую уборку, но время работы уменьшилось только на 1 час.
Я обнаружил, что сетевой ввод-вывод и сливной ввод-вывод высоки, но я не знаю причину и значение этого?
Может кто-нибудь сказать мне причину этих двух проблем (сетевой ввод-вывод и масляный ввод-вывод)? Есть ли предложения по оптимизации этой программы?
Спасибо!
2 ответа
Мне кажется, что ваше приложение считывает много данных в приложение, что объясняет цифры. Тем не менее, я бы проверил следующее:
Есть ли блокировка? Это легко может быть огромной тратой времени, если процесс просто ожидает чего-то другого, чтобы завершиться. Это не похоже на вашу статистику, но все же важно проверить.
Таблицы проиндексированы правильно? Хорошие показатели для соответствия критериям поиска / объединениям. Если поиск по ключевым словам огромен, закрывающие индексы могут иметь большое значение. Слишком много индексов / ненужных индексов может замедлить обновления.
Вы должны заглянуть в кэш плана, чтобы увидеть операторы, ответственные за наибольшую загрузку ввода-вывода или использование процессора
Правильны ли планы запросов для наиболее дорогостоящих операций? У вас может быть устаревшая статистика или другие проблемы с оптимизацией.
Если приложение передает большой объем данных в базу данных и / или из нее, достаточно ли хороши задержка и пропускная способность сети или это может быть причиной замедления? Является ли сервер, на котором работает приложение, узким местом?
Если это не помогает, вам, вероятно, следует опубликовать новый вопрос с подробной информацией: операторы SQL, которые вызывают проблемы, таблицы и структура индексации задействованных таблиц с количеством строк и планами запросов.
- , Согласно вашим описаниям, я думаю, что ваш ввод / вывод нормальный, ваш вопрос только один: одна процедура слишком медленная.
решение:
1. открыть SSMS
2. найти процедуру
3. Нажмите кнопку с названием "Показать примерный план выполнения".
4. исправить процедуру.