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

Откуда: Новосибирск
Сообщений: 480
Народ, у кого-нить на сервере стоит распараллеливание запросов? На сколько я понимаю по умолчанию - распараллеливание запросов включено. Тут почитал - рекомендуют отключать..
20 июл 09, 10:02    [7434212]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
RENaissance
Member

Откуда: Муром->Москва
Сообщений: 10895

Распараллеливание включено. Все нормально работает.

Posted via ActualForum NNTP Server 1.4

20 июл 09, 10:14    [7434274]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
Glory
Member

Откуда:
Сообщений: 104760
quazare
Народ, у кого-нить на сервере стоит распараллеливание запросов? На сколько я понимаю по умолчанию - распараллеливание запросов включено. Тут почитал - рекомендуют отключать..

Параллельно не есть синоним всегда быстро.
Не могут "рекомендовать отключать" распараллеливание вообще. Могут рекомендовать отключать для конктретного запроса
20 июл 09, 10:44    [7434459]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
quazare
Member

Откуда: Новосибирск
Сообщений: 480
подскажите, а как его отключить?
20 июл 09, 11:13    [7434668]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
Glory
Member

Откуда:
Сообщений: 104760
quazare
подскажите, а как его отключить?

Зачем ?
20 июл 09, 11:15    [7434683]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
quazare
Member

Откуда: Новосибирск
Сообщений: 480
прочитал, что может подвестить всю систему, если сложный и долгий заброс (более 5 сек)... соответственно все остальное встанет колом..
20 июл 09, 11:19    [7434713]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
Glory
Member

Откуда:
Сообщений: 104760
quazare
прочитал, что может подвестить всю систему, если сложный и долгий заброс (более 5 сек)... соответственно все остальное встанет колом..

И вы можете дать ссылку на источник ?
Или вы уже зафиксировали, что ваш запрос выполняется с параллелизмом и "соответственно все остальное встает колом" ?
20 июл 09, 11:23    [7434735]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
RENaissance
Member

Откуда: Муром->Москва
Сообщений: 10895

quazare

прочитал, что может подвестить всю систему, если сложный и долгий заброс
(более 5 сек)... соответственно все остальное встанет колом..

Тынц можно на авторитетный источник?

Posted via ActualForum NNTP Server 1.4

20 июл 09, 11:24    [7434739]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
quazare
Member

Откуда: Новосибирск
Сообщений: 480
книга "MSSQL Server 2005 для администраторов" Р.Михеев глава 11 стр.436
20 июл 09, 11:31    [7434793]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
RENaissance
Member

Откуда: Муром->Москва
Сообщений: 10895

quazare

книга "MSSQL Server 2005 для администраторов" Р.Михеев глава 11 стр.436

Это - авторитетный источник?! Интересует ссылка в BOL.

Posted via ActualForum NNTP Server 1.4

20 июл 09, 11:32    [7434802]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
quazare
Member

Откуда: Новосибирск
Сообщений: 480
DBCC TRACEON(-1);
DBCC TRACEON(8687);
20 июл 09, 11:32    [7434806]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
Glory
Member

Откуда:
Сообщений: 104760
quazare
книга "MSSQL Server 2005 для администраторов" Р.Михеев глава 11 стр.436

Вас не затруднит процитировать ?
20 июл 09, 11:33    [7434813]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
quazare
Member

Откуда: Новосибирск
Сообщений: 480
RENaissance,

если бы я до конца был уверен в авторитетности и правильности этих действий. на форуме бы не "вылазил" с такими вопросами, правда?
можете подсказать - подскажите. нет - лучше ничего левого не писать сюда.
20 июл 09, 11:35    [7434823]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
quazare
Member

Откуда: Новосибирск
Сообщений: 480
Glory
quazare
книга "MSSQL Server 2005 для администраторов" Р.Михеев глава 11 стр.436

Вас не затруднит процитировать ?

флаг трассировки 8687 - запрещает распараллеливание запросов... собственно в кратце - так.
20 июл 09, 11:36    [7434834]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
Glory
Member

Откуда:
Сообщений: 104760
quazare
RENaissance,

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

Ваш вопрос ни о чем.
Если у вас проблемы с конктреным запросом, то не надо тыкать пальцем в небо, в надежде отыскать настройку типа "шоб все работало быстро"
Нужно искать причину проблемы конктретного запроса
20 июл 09, 11:37    [7434840]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
RENaissance
Member

Откуда: Муром->Москва
Сообщений: 10895

quazare

флаг трассировки 8687 - запрещает распараллеливание запросов...
собственно в кратце - так.

Вас просили цитату, где сказано, что распараллеливание - зло.

Posted via ActualForum NNTP Server 1.4

20 июл 09, 11:38    [7434843]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
Glory
Member

Откуда:
Сообщений: 104760
quazare
Glory
quazare
книга "MSSQL Server 2005 для администраторов" Р.Михеев глава 11 стр.436

Вас не затруднит процитировать ?

флаг трассировки 8687 - запрещает распараллеливание запросов... собственно в кратце - так.

Причем здесь флаг трассировки ?
Где цитата про "может подвестить всю систему, если сложный и долгий заброс (более 5 сек)... соответственно все остальное встанет колом.." ?
20 июл 09, 11:39    [7434858]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
Нектотам
Guest
quazare,

Само по себе параллельное выполнение запросов не является проблемой, но тут есть несколько нюансов, связанных с вполне конкретной областью применения.
1. В SQL 2000 были некоторые проблемы с распараллеливанием запросов (см. статью "Использование опции "max degree of parallelism" в Microsoft SQL Server 2000" на диске ИТС 1С)
2. Параллельные планы обычно всплывают, когда выполняется скан таблицы или индекса. Скан таблицы или индекса обычно свидетельствует о неэффективном выполнении запроса. Чаще всего это бывает из-за одной из следующих причин:
- отсутствие (невозможность использования) нужного индекса
- низкая селективность "нужного" индекса
- сильная фрагментированность / низкая "плотность" заполнения страниц индекса
- неактуальная статистика нужного индекса
При наличии этих проблем (которые, безусловно, требуют решения) построенный параллельный план часто бывает медленнее нормального плана в разы и накладывает больше блокировок, чем ожидалось. Применительно к 1С это часто бывает после массовых перепроведений задним числом.
3. Генерируемый платформой 1С запрос на получение остатков/оборотов по регистру накопления/бухгалтерии написан так, что он эффективно работает с использованием существующих индексов, но очень неэффективно в случаях, когда распараллеливается. А структура данных такова, что при определённых условиях (например, при массовом исправлении документов прошлых периодов) этот запрос часто "сваливается" в параллельность. Предпослыки этого примерно такие:
- много документов и движений в последний день месяца (неравномерно распределена статистика)
- перепроведение документов приводит к сильной фрагментации индексов
- переформирование движений по партионному учету приводит к большому количеству нулевых записей, которые приводят к низкой селективности индекса по итогам
- расчет остатков на середину периода обычно выполняется как разница между остатком на конец периода (месяца) и движениями меджу датой остатков и концом периода (и тут-то все три вышеприведённые предпосылки заходят с козырей)
4. В 1С 8.0 (не 8.1) на многих таблицах не было кластерных индексов. Это приводило к очень "специфичным" планам выполнения после большого количества вставок/удалений.


Из-за этих особенностей обычно бывает полезным (мой опыт подсказывает) повысить "cost threshold for parallelism" на сервере с БД 1С до 100-10000. Но это ни в коем случае не панацея, а скорее "обезбаливающее". Это позволит в "плохих" случаях сохранить планы запросов, которые используют индексы, даже если эти индексы находятся в плохом состоянии. Ну и само по себе это к "все остальное встанет колом" имеет достаточно слабое отношение.
Если есть запрос, который распараллеливается, то:
а) отловите его при помощи SQL Profiler,
б) по возможности упростите его так, чтобы параллельность не пропала
в) приведите его и структуру используемых таблиц, индексы этих таблиц
г) приведите результаты DBCC SHOWCONTIG WITH TABLERESULTS для этих таблих.
Тогда, скорее всего, можно будет что-то посоветовать, чтобы этот запрос выполнялся эффективнее
20 июл 09, 11:50    [7434931]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ну так что вам мешает сделать это
"Если есть запрос, который распараллеливается, то:
а) отловите его при помощи SQL Profiler,
б) по возможности упростите его так, чтобы параллельность не пропала
в) приведите его и структуру используемых таблиц, индексы этих таблиц
г) приведите результаты DBCC SHOWCONTIG WITH TABLERESULTS для этих таблих.
Тогда, скорее всего, можно будет что-то посоветовать, чтобы этот запрос выполнялся эффективнее"
20 июл 09, 11:54    [7434959]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
Нектотам
Guest
Glory,

Мне - ничего. Именно так и лечимся. А вот что мешает это сделать топикстартеру - это уже другой вопрос :-)
20 июл 09, 11:59    [7435001]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
Glory
Member

Откуда:
Сообщений: 104760
Нектотам
Glory,

Мне - ничего. Именно так и лечимся. А вот что мешает это сделать топикстартеру - это уже другой вопрос :-)

Извиняюсь, я думал, это цитата из указанного источника
20 июл 09, 12:03    [7435029]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
quazare
Member

Откуда: Новосибирск
Сообщений: 480
Нектотам
Из-за этих особенностей обычно бывает полезным (мой опыт подсказывает) повысить "cost threshold for parallelism" на сервере с БД 1С до 100-10000.


да спасибо, понятно, т.е. предлагается распарралеливать запросы, время выполнения которых более 100 сек. ну это логично...
20 июл 09, 12:32    [7435218]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
Нектотам
Guest
quazare
да спасибо, понятно, т.е. предлагается распарралеливать запросы, время выполнения которых более 100 сек. ну это логично...

Только учтите, что эта процедура имеет примерно ту же эффективность, что и замена предохранителя 2,5А на предохранитель 25 А :-) Ну т.е. пробки выбивать не будет, но проводка гореть будет.
20 июл 09, 12:37    [7435238]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
fisher
Member

Откуда:
Сообщений: 60
А как эффективно отследить в профайлере распараллеливаемые запросы?
20 июл 09, 13:09    [7435377]     Ответить | Цитировать Сообщить модератору
 Re: Распараллеливание запросов  [new]
fisher
Member

Откуда:
Сообщений: 60
И еще глупый вопрос. Почему, как вы говорите, "свалившийся" в параллельное выполнение запрос к итогам в 1С выполняется намного дольше? Очень интересна механика проблемы.
20 июл 09, 13:14    [7435415]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить