Настройка возможностей параллельной обработки

Оценить
(0 голоса)

В ASE 11.5 введена возможность разделения запросов между множеством потоков сервера. В следующем разделе рассматривается настройка параллельной обработки на сервере ASE.

Параллельные запросы

Начиная с ASE 11.5, СУБД Sybase поддерживает параллелизм внутри самих запросов, позволяя разбивать один запрос на несколько задач ASE. Подобный параллелизм может существенно улучшить производительность больших запросов и особенно в средах DSS. Хотя время выполнения запросов может быть существенно сокращено, однако при выполнении запросов в параллельном режиме задействуется большее количество ресурсов по сравнению с обычной обработкой запроса через единственный поток. По этой причине важно сбалансировать производительности, требуемые для рабочих нагрузок в средах DSS и OLTP. Выделение системных ресурсов всего ради нескольких больших запросов может оказать негативное воздействие на производительность обработки запросов OLTP.

Далее перечислены параметры конфигурации, которые управляют параллелизмом при обработке запроса;

•             number of worker processes. Определяет общий размер пула доступных потоков для обработки всех параллельных запросов.

•             max parallel degree. Определяет максимальное количество рабочих процессов, доступных для сканирования разделов, и общее количество рабочих процессов, доступных для объединенных запросов, включая параллельный доступ к множеству таблиц.

•             max scan parallel degree. Определяет максимальное количество рабочих процессов. доступных для сканирований хэш-таблиц и некластерных индексов.

Вот некоторые правила, относящиеся к параллельной обработке запросов:

•             Параллельные запросы потребляют больше системных ресурсов, чем последовательные.

•             Если ЦП используется интенсивно и производительность OLTP является критичной, не увеличивайте степень параллелизма.

•             Если ЦП используется незначительно и ввод/вывод далек от насыщения, постепенно увеличивайте степень параллелизма.

•             Степень параллелизма должна быть больше или равна самому большому числу разделов отдельной таблицы.

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

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

•             Если большие запросы приводят к взаимной блокировке при последовательном выполнении, переход к их параллельному выполнению может лишь увеличить количество взаимных блокировок. Кроме того, когда происходят клинчи, для запросов OLTP скорее всего будет выполнен откат, поскольку запросам DSS требуется больше времени ЦП.

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

Чтобы полностью понять, как система выполняет обработку параллельных запросов, необходимо совместно проанализировать управление рабочими процессами и параллельной обработкой запросов. На рисунке 23.13 представлена информация управления рабочими процессами, формируемая хранимой процедурой sp_sysmon.

Процентное значение показателя
Производительность параллельной сортировки
Настройка других аспектов
Мониторинг блокировок
Lock Management

Добавить комментарий


Защитный код
Обновить