SQL-сервер - высокий буферный ввод-вывод и сетевой ввод-вывод

У меня есть вопрос настройки производительности на сервере SQL.

У меня есть программа, которая должна запускаться каждый месяц, и для ее завершения требуется больше 24 часов. Мне нужно настроить эту программу в надежде, что я смогу сократить время работы до 12 часов или меньше.

Поскольку эта программа не разработана нами, я не могу проверить содержание программы и изменить ее. Все, что я могу сделать, это просто открыть профилировщик SQL-сервера и монитор активности, чтобы отслеживать и анализировать содержимое SQL. Я отключил неиспользуемые триггеры и сделал некоторую уборку, но время работы уменьшилось только на 1 час.

Я обнаружил, что сетевой ввод-вывод и сливной ввод-вывод высоки, но я не знаю причину и значение этого?

Может кто-нибудь сказать мне причину этих двух проблем (сетевой ввод-вывод и масляный ввод-вывод)? Есть ли предложения по оптимизации этой программы?

Спасибо!

2 ответа

Мне кажется, что ваше приложение считывает много данных в приложение, что объясняет цифры. Тем не менее, я бы проверил следующее:

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

  • Таблицы проиндексированы правильно? Хорошие показатели для соответствия критериям поиска / объединениям. Если поиск по ключевым словам огромен, закрывающие индексы могут иметь большое значение. Слишком много индексов / ненужных индексов может замедлить обновления.

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

  • Правильны ли планы запросов для наиболее дорогостоящих операций? У вас может быть устаревшая статистика или другие проблемы с оптимизацией.

  • Если приложение передает большой объем данных в базу данных и / или из нее, достаточно ли хороши задержка и пропускная способность сети или это может быть причиной замедления? Является ли сервер, на котором работает приложение, узким местом?

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

  • , Согласно вашим описаниям, я думаю, что ваш ввод / вывод нормальный, ваш вопрос только один: одна процедура слишком медленная.
    решение:
    1. открыть SSMS
    2. найти процедуру
    3. Нажмите кнопку с названием "Показать примерный план выполнения".
    4. исправить процедуру.
Другие вопросы по тегам