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

Откуда: Odessa
Сообщений: 92
есть запрос , выполняю его в двух разных бд в одинаковых по структуре таблицах на одном сервере вот запрос
автор
SELECT MONTH(CDTUL) AS [Month]
,YEAR(CDTUL) AS [Year]
,COUNT(CAMBD) AS [Count]
,SUM(CAMBD + CAMCG) AS [Total]
FROM [AS400].[dbo].JCPMST
GROUP BY MONTH(CDTUL) ,
YEAR(CDTUL)




но генерятся разные планы выполнения ,смотрите во вложения

Почему они разные и как доиться лучшего из них,,,,!!!!??????

К сообщению приложен файл. Размер - 30Kb
23 май 12, 18:30    [12603782]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Andr___!
Member

Откуда: Odessa
Сообщений: 92


К сообщению приложен файл. Размер - 24Kb
23 май 12, 18:31    [12603785]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Ray D
Member

Откуда: from the middle of nowhere
Сообщений: 3598
Блог
Для начала обновите статистику для индексов на таблице dbo.JCPMST
23 май 12, 18:39    [12603834]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Andr___!
Member

Откуда: Odessa
Сообщений: 92
Ray D
Для начала обновите статистику для индексов на таблице dbo.JCPMST


без изменений
23 май 12, 18:43    [12603846]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Ray D
Member

Откуда: from the middle of nowhere
Сообщений: 3598
Блог
А чего сделали?
23 май 12, 18:44    [12603854]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Andr___!
Member

Откуда: Odessa
Сообщений: 92
Ray D
А чего сделали?


К сообщению приложен файл. Размер - 76Kb
23 май 12, 18:48    [12603875]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Ray D
Member

Откуда: from the middle of nowhere
Сообщений: 3598
Блог
Нет.

update statistics dbo.JCPMST with fullscan
23 май 12, 18:52    [12603895]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Andr___!
Member

Откуда: Odessa
Сообщений: 92
Ray D
Нет.

update statistics dbo.JCPMST with fullscan


тоже без результатно.
24 май 12, 10:37    [12606107]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Andr___!,
Что и размеры таблиц совпадают, и настройка Cost Threshold for Parallelism для серверов одинаковая?
автор
Почему они разные и как доиться лучшего из них,,,,!!!!??????

SELECT MONTH(CDTUL) AS [Month]
,YEAR(CDTUL) AS [Year]
,COUNT(CAMBD) AS [Count]
,SUM(CAMBD + CAMCG) AS [Total]
FROM [AS400].[dbo].JCPMST
GROUP BY MONTH(CDTUL) ,
YEAR(CDTUL)

ну можно попробовать создать вычисляемые поля для MONTH(CDTUL),YEAR(CDTUL) да и индексы нужные создать.
да и матереализованое представление можно попробовать создать .
24 май 12, 10:46    [12606193]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
Andr___!,
а кстати что там с количеством записей в этих таблицах?
24 май 12, 11:00    [12606305]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Andr___!
Member

Откуда: Odessa
Сообщений: 92
denis2710
Andr___!,
Что и размеры таблиц совпадают, и настройка Cost Threshold for Parallelism для серверов одинаковая?
автор
Почему они разные и как доиться лучшего из них,,,,!!!!??????

SELECT MONTH(CDTUL) AS [Month]
,YEAR(CDTUL) AS [Year]
,COUNT(CAMBD) AS [Count]
,SUM(CAMBD + CAMCG) AS [Total]
FROM [AS400].[dbo].JCPMST
GROUP BY MONTH(CDTUL) ,
YEAR(CDTUL)

ну можно попробовать создать вычисляемые поля для MONTH(CDTUL),YEAR(CDTUL) да и индексы нужные создать.
да и матереализованое представление можно попробовать создать .


1) базы на одном сервере
2) в одной таблице 8694203(параллелизм НЕ срабатывает), в другой 8688969(параллелизм срабатывает)
24 май 12, 11:20    [12606471]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
может быть попробовать option(maxdop 0) для плохой базы?
24 май 12, 11:41    [12606714]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Andr___!,
А можете планы выложить в виде файлов?
Да и проверьте,что таблицы полностью идентичны(индексы,статистики).
24 май 12, 11:41    [12606724]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Andr___!
Member

Откуда: Odessa
Сообщений: 92
denis2710
Andr___!,
А можете планы выложить в виде файлов?
Да и проверьте,что таблицы полностью идентичны(индексы,статистики).


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

единственное отличие - хорошая таблица намного старше плохой
файлы выкладываю

К сообщению приложен файл (badPlan.sqlplan - 18Kb) cкачать
24 май 12, 12:27    [12607305]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Andr___!
Member

Откуда: Odessa
Сообщений: 92


К сообщению приложен файл (goodPlan.sqlplan - 36Kb) cкачать
24 май 12, 12:28    [12607309]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
Мистер Хенки
может быть попробовать option(maxdop 0) для плохой базы?

так а если в запрсе добавить эту опцию как-нибудь план изменится на "плохой" базе
24 май 12, 12:36    [12607385]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Andr___!
Member

Откуда: Odessa
Сообщений: 92
Мистер Хенки
Мистер Хенки
может быть попробовать option(maxdop 0) для плохой базы?

так а если в запрсе добавить эту опцию как-нибудь план изменится на "плохой" базе


неа - не поменялся((
24 май 12, 12:42    [12607449]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34703
Andr___!,

А ты вообще как думаешь, как такой запрос должен выполняться, чтобы это эффективно было ?
Идеальный план запроса какой будет ?

А планы разные потому что на одном серваке разрешёл параллелизм в запросах, на другом -- нет.
По сути планы одинаковы, и оптимальны для данного запроса.
24 май 12, 12:55    [12607581]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Andr___!, все как всегда,разные запросы имеют разный план.Вычисляется дополнительный столбце в "плохом" плане.

+
CONVERT(datetime,CASE WHEN isdate(CONVERT_IMPLICIT(nvarchar(10),[AS400_Test].[dbo].[JCPMST].[CDTUL_CHAR],0))=(1) THEN [AS400_Test].[dbo].[JCPMST].[CDTUL_CHAR] ELSE '20000101' END,0)

Обычно от параллели избавится (типа maxdop = 1),а тут хотят задействовать.Полезность параллельной обработке превышает накладные расходы на ее.Не тратьте время впустую,постройте все необходимые индекс(ы) для этого запроса и будет вас счастье.
24 май 12, 13:00    [12607634]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Andr___!
Member

Откуда: Odessa
Сообщений: 92
MasterZiv

А планы разные потому что на одном серваке разрешёл параллелизм в запросах, на другом -- нет.



Я же писал,- базы на одном серваке

Ну да ладно ,- не очень и велика разница чтобы огород городить..
Индексы не буду проставлять потому что в эти таблицы пишутся данные сотнями тысяч- индексы скорее всего затруднят эту запись

Спасибо всем за обсуждение!
24 май 12, 13:34    [12607913]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Ray D
Member

Откуда: from the middle of nowhere
Сообщений: 3598
Блог
denis2710
Обычно от параллели избавится (типа maxdop = 1),а тут хотят задействовать.Полезность параллельной обработке превышает накладные расходы на ее.

Очень сомнительное заявление.
24 май 12, 14:08    [12608198]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Ray D
denis2710
Обычно от параллели избавится (типа maxdop = 1),а тут хотят задействовать.Полезность параллельной обработке превышает накладные расходы на ее.

Очень сомнительное заявление.

да что-то я странное написал,получилось не то что имел ввиду.
Хотел сказать следующее:
что обычно избавляются от параллели(аля maxdop=1),т.к зачастую накладные расходы на ее,превосходят ее полезность.И в данном случае ТС думал,что параллельный запрос лучше,чем нераспараллеленый(наверно быстрее выполняется),но сие скорей всего не верно, так как еще в "плохом" плане считалось значения для всех 8млн записей вычисляемого столбца(чего не было в "хорошем" плане),что собственно не могло не сказаться на производительности.
24 май 12, 14:41    [12608488]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3752
denis2710
так как еще в "плохом" плане считалось значения для всех 8млн записей вычисляемого столбца(чего не было в "хорошем" плане),что собственно не могло не сказаться на производительности.

Это с чего это вдруг они там считались?
24 май 12, 15:11    [12608759]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с планом выполнения запросов  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Ivan Durak,
План смотрели? Я не прав? Почему?
24 май 12, 15:18    [12608843]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить