Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Распараллеливание, но не для всех  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5490
Hi, All!

При сборе инфы профайлером заметил, что приложение почти всегда строит последовательные планы. Если запустить этот запрос из студии, план обычно получается параллельным. Почему так? Для кого-то параллельные планы, а для кого-то последовательные? Это где-то настраивается в строке соединения с сервером? Или в конфигах самого сервера? Как посмотреть?
7 сен 17, 16:39    [20779327]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание, но не для всех  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
Dmitry V. Liseev, такое можно сделать... через resource governor, но... навряд это ваш случай....
7 сен 17, 17:02    [20779414]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание, но не для всех  [new]
invm
Member

Откуда: Москва
Сообщений: 9345
https://blogs.msdn.microsoft.com/psssql/2013/08/28/sql-2012-query-plan-enhancement-i-want-to-know-why-my-query-is-not-parallelized/
7 сен 17, 17:04    [20779417]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание, но не для всех  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Dmitry V. Liseev,

если не стоит MAXDOP 1 или попрог какой нить черезчур высокий, то остаётся наличие ресурсов для всего этого
7 сен 17, 17:14    [20779453]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание, но не для всех  [new]
aleks222
Guest
Dmitry V. Liseev
Hi, All!

При сборе инфы профайлером заметил, что приложение почти всегда строит последовательные планы. Если запустить этот запрос из студии, план обычно получается параллельным. Почему так? Для кого-то параллельные планы, а для кого-то последовательные? Это где-то настраивается в строке соединения с сервером?


Это может зависеть от USER OPTIONS (см. dbcc USER_OPTIONS() ).

Напрямую они параллелизмом не рулят.
Но от них зависит выбор плана.
А от плана зависит возможность параллелиться.
7 сен 17, 17:36    [20779532]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание, но не для всех  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5490
TaPaK
Dmitry V. Liseev,

если не стоит MAXDOP 1 или попрог какой нить черезчур высокий, то остаётся наличие ресурсов для всего этого
Точно не стоит. Исходники процедур доступны в открытом виде. И они одни и те-же как для запуска приложением, так и для запуска вручную.
12 сен 17, 07:25    [20788675]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание, но не для всех  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5490
invm
https://blogs.msdn.microsoft.com/psssql/2013/08/28/sql-2012-query-plan-enhancement-i-want-to-know-why-my-query-is-not-parallelized/
У меня 2008 R2. Жизнь - боль. Надежда есть?
12 сен 17, 07:27    [20788677]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание, но не для всех  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Dmitry V. Liseev,
автор
Точно не стоит. Исходники процедур доступны в открытом виде.
и для сервера?
автор
У меня 2008 R2. Жизнь - боль. Надежда есть?
т.е. только цифры в заголовке увидили и не читали?
12 сен 17, 08:17    [20788723]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание, но не для всех  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5490
TaPaK
Dmitry V. Liseev,
автор
Точно не стоит. Исходники процедур доступны в открытом виде.
и для сервера?
автор
У меня 2008 R2. Жизнь - боль. Надежда есть?
т.е. только цифры в заголовке увидили и не читали?
Там написано английским по белому:
We didn’t have a good way to let customer know the reason until SQL 2012.
Starting SQL Server 2012, XML showplan is enhanced to include the reason why the plan is not or cannot be parallelized.
Я не нашёл в своих планах того, что указано в статье. Нету NonParallelPlanReason у меня. Даже, если MAXDOP 1 явно задать.
12 сен 17, 18:58    [20791053]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание, но не для всех  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33644
Блог
там куча тонкостей, начиная от того, какие SET`ы устанавливают разные приложения, до того, под какими правами запускается запрос
12 сен 17, 20:23    [20791186]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание, но не для всех  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5490
Критик
там куча тонкостей, начиная от того, какие SET`ы устанавливают разные приложения, до того, под какими правами запускается запрос
Сеты я из планов вытаскивал с помощью sys.dm_exec_plan_attributes. Ничего криминального в них нет. А вот как от прав может зависеть? Впрочем, было замечено, что вчера запрос был последовательным, потом стал параллельным, а потом опять последовательным. Таки не от приложения зависит.

А какой смысл имеет параметр "cost threshold for parallelism"? Значение 5 - это в метрах? Килограммах?

https://docs.microsoft.com/ru-ru/sql/database-engine/configure-windows/configure-the-cost-threshold-for-parallelism-server-configuration-option
Стоимость представляет предполагаемые затраты, необходимые для выполнения последовательного плана в определенной конфигурации оборудования (это не единица времени).

https://technet.microsoft.com/ru-ru/library/ms188603(v=sql.105).aspx
В следующем примере устанавливается стоимостный порог для параллелизма в 10 секунд.

У меня были подозрения, что это StatementSubTreeCost, после которого сервер начинает строить параллельные планы.
12 сен 17, 22:10    [20791339]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание, но не для всех  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Dmitry V. Liseev,

автор
потом стал параллельным, а потом опять последовательным. Таки не от приложения зависит.

от условий

автор
А какой смысл имеет параметр "cost threshold for parallelism"? Значение 5 - это в метрах? Килограммах?

правильный ответ в "попугаях" как и часть параметров в планах
12 сен 17, 22:29    [20791384]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание, но не для всех  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Dmitry V. Liseev
Критик
там куча тонкостей, начиная от того, какие SET`ы устанавливают разные приложения, до того, под какими правами запускается запрос
Сеты я из планов вытаскивал с помощью sys.dm_exec_plan_attributes. Ничего криминального в них нет. А вот как от прав может зависеть? Впрочем, было замечено, что вчера запрос был последовательным, потом стал параллельным, а потом опять последовательным. Таки не от приложения зависит.

А какой смысл имеет параметр "cost threshold for parallelism"? Значение 5 - это в метрах? Килограммах?

https://docs.microsoft.com/ru-ru/sql/database-engine/configure-windows/configure-the-cost-threshold-for-parallelism-server-configuration-option
Стоимость представляет предполагаемые затраты, необходимые для выполнения последовательного плана в определенной конфигурации оборудования (это не единица времени).

https://technet.microsoft.com/ru-ru/library/ms188603(v=sql.105).aspx
В следующем примере устанавливается стоимостный порог для параллелизма в 10 секунд.

У меня были подозрения, что это StatementSubTreeCost, после которого сервер начинает строить параллельные планы.

автор
it's not 5 seconds on your machine. It's 5 seconds on a machine internal to Microsoft from some time in the 1990s. There's no way to relate it to execution time on your current machine, so we treat it as a pure number now. Raising it to 50 is a common suggestion nowadays, so that more of your simpler queries run on a single thread.
12 сен 17, 22:36    [20791395]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание, но не для всех  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5490
TaPaK
Dmitry V. Liseev,
автор
А какой смысл имеет параметр "cost threshold for parallelism"? Значение 5 - это в метрах? Килограммах?

правильный ответ в "попугаях" как и часть параметров в планах
Эти попугаи того-же цвета, что и стоимость в планах? Вот, внутри XML в элементах есть атрибут StatementSubTreeCost. Это оно?
13 сен 17, 15:34    [20793116]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание, но не для всех  [new]
invm
Member

Откуда: Москва
Сообщений: 9345
Dmitry V. Liseev
А какой смысл имеет параметр "cost threshold for parallelism"? Значение 5 - это в метрах? Килограммах?
https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-cost-threshold-for-parallelism-server-configuration-option
SQL Server creates and runs a parallel plan for a query only when the estimated cost to run a serial plan for the same query is higher than the value set in cost threshold for parallelism.
13 сен 17, 16:34    [20793299]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить