Тестирование параллелизма SQL в среде 1С Предприятие
Какое отношение параллелизм SQL имеет к среде 1С Предприятие? Целью данной работы является изучение влияния параллелизма SQL на работу с запросами 1С
- Описание
- Подробнее
Описание
Цель: изучить
влияние параллелизма SQL
на работу с запросами 1С
Литература:
Понимание и использование параллелизма в SQL Server
Тестовая среда:
·
Windows
server 2008 R2 Enterprise
·
MS
SQL server 2008 R2
·
1С Предприятие 8.2.19.90
SQL properties:

Рисунок 1. SQL
properties “General”

Рисунок 2.
SQL properties “Advansed”
Инструменты:
·
SQL
server profiler
·
SQL
Query
·
Консоль запросов 1С
Тестовый запрос:
ВЫБРАТЬ
АК.Наименование КАК Наименование
ИЗ
РегистрСведений.АдресныйКлассификатор
КАК АК
ВНУТРЕННЕЕ
СОЕДИНЕНИЕ РегистрСведений.АдресныйКлассификатор КАК АК1
ПО
АК.Код = АК1.Код
Подготовка:
Запускаем SQL server Profiler,
устанавливаем соединение, отмечаем события и колонки как показано на рисунке 3.

Рисунок 3. Trace properties
Устанавливаем отбор для нашей базы

Рисунок 4. Фильтр по базе
Сокращения:
·
Max
degree of parallelism – MDOP
·
Сost threshold for parallelism — cost
Тестирование последовательного плана запроса (MDOP = 1)
Далее, в среде 1С Предприятие в тестовой базе запускаем
консоль запросов и выполняем запрос (Рис.5)

Рисунок 5. Консоль запросов – время выполнения 20 сек.
Параметр SQL сервера “Max degree of parallelism”
установлен в 1 (без параллелизма).
Смотрим результат в профайлере (рис.6)

Рисунок 6. Последовательный план запроса
SQL
сервер сформировал последовательный план запроса, при этом: общая загрузка CPU = 6,750 (сек), а время на
выполнение запроса = 7,097(сек)
Тестирование параллельного плана запроса (MDOP = 0, cost =5)
Переводим SQL server в режим параллелизма (в SQL Query):
USE
master;
GO
EXEC
sp_configure ‘show advanced option’,
1;
GO
RECONFIGURE
WITH OVERRIDE
USE
master;
GO
exec
sp_configure‘max degree of parallelism’,
0;
GO
RECONFIGURE WITH
OVERRIDE
Выполняем тот же запрос (Рисунок 7)

Рисунок 7. Консоль запросов – время выполнения 16 сек.
Проверяем результат в профайлере (Рисунок 8)

Рисунок 8. Параллельный план запроса
Сервер SQL
в этот раз сформировал параллельный план запроса, при этом общая загрузка CPU = 7,905 сек, а
длительность выполнения запроса = 3,458 сек
Тестирование последовательного плана запроса (MDOP = 0, cost = 150)
Попытаемся избавиться от
параллельного плана, используя параметр «Сost threshold for parallelism». По умолчанию
параметр установлен в 5. В нашем случае от формирования параллельного плана
удалось избавиться при значении 150 (в SQL Query):
USE
master;
GO
exec
sp_configure ‘cost threshold for parallelism’, 150 ;
GO
Проверяем выполнение запроса в данных
условиях (рис. 9)
Рисунок 9. Консоль запросов – время выполнения
20 сек.
Проверяем результат в профайлере (рис.10)

Рисунок 10. Последовательный план
запроса.
Сервер SQL сформировал последовательный план запроса. Общая загрузка CPU = 7,171 сек, время выполнения запроса =7, 864 сек.
Выводы:
·
Выполнение тестового запроса в среде 1С
Предприятия с использованием SQL
сервером параллельного плана запроса дает значительный прирост
производительности по сравнению с последовательным планом (16 сек. против 20
сек. – выигрыш 4 сек.)
·
Выполнения тестового запроса самим сервером SQL при
использовании параллельного плана запроса происходит в два раза быстрее, чем при
использовании последовательного плана запроса (3,5 сек. против 7,1 сек.)
·
Параллелизм SQL сервера можно регулировать не только, используя параметр MDOP, но и параметр «Сost
threshold for parallelism»

