//

Введение в распараллеливание исполнения запроса

Introduction to Parallel Query Execution

 

http://www.sql.ru/articles/mssql/2007/070604introductiontoparallelqueryexecution.shtml

Некоторые разумные мысли плюс тяжелая пурга.

Прежде всего- параллелизм является одним из лучших способов повышения производительности работы MSSQL Server. Если задачу распределить на десятерых- ее сделают быстрей. Может не в десять раз, но в пять так точно. То есть, это важный и ценный механизм повышения производительности. И увеличение стоимости запроса тут глубоко до фонаря. Главная цель- снизить время выполнения, и если оно будет работать быстрей, та пусть сервер жужжит погромче, Бог с ним.

Странно выглядят ссылки на 1-2 процессорный сервер. На калькуляторе может еще его поставить? Сегодня число процессоров (ядер) на приличных серверах измеряется десятками и сотнями. Их много, и, как правило, они имеют избыточную мощность, они не загружены. Число ядер у десктопов достигает 8, даже есть такой себе 8-ядерный мутант-переросток Intel Atom.

Вот 18-ядерная машинка Intel® Xeon® Processor E5-4669 v3 (45M Cache, 2.10 GHz), рубится на 36 (!!!) потоков. 36 логических процессоров в одной коробочке.

http://ark.intel.com/ru/products/85766/Intel-Xeon-Processor-E5-4669-v3-45M-Cache-2_10-GHz

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

Ставил эксперименты  с тестовой таблицей в tempdb— удавалось снизить время работы некой задачи до 5-7%. В 20 раз!!! Чудо- так и делать!

Так не получится. Почему?

Реальные задачи работают иначе. На их работу накладывают серьезные ограничения блокировки и дисковые операции.

Если посчитать по объектам CPUшное время  и общее время выполнения, то открывается интересная картина. Одни запросы нормально распараллеливаются, время работы у них в разы превышает общее время работы. Это и есть реальная степень параллелизма. А у некоторых она меньше единицы. Иные запросы раз в 50 дольше стоят в пробках чем работают.

Богатый опыт работы с Sybase Replication Server, Sybase ASE Server, MS SQL Server

Опубликовано в SQL, Серверы
One comment on “Введение в распараллеливание исполнения запроса
  1. We are about the BASSE CONSOMMATION iMP Beta and will ensure the idea uses the identical KService’ to send out growing media, despite this software is definitely sealed.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*