Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
DeAmon2K
Member

Откуда: Норильск
Сообщений: 226
Описание ситуации: Есть сервер MS SQL 2012 (Windows Server 2008 R2), веб приложение на aspx (.NET 4.0) на отдельной машине. Всё написано на stored procedure. Из страничек вызывается процедура (ADO DB), там практически идет весь результат в таблице и на страницу. Разработка ведется непосредственно в Managment Console или в Studio.
Проблема: сначала работает всё нормально. После некоторого времени, aspx страница начинает выдавать желтенькую по timeout. В console процедура отрабатывает нормально - до 3 секунд. В TRACE видно, что когда вызывает, IIS запрос выполняется больше 40 секунд. После танцев с бубнами пришли к планам. В кэше с планами видно, что сначала создается нормальный план, после некоторого времени, возникают еще 2 плана. Получается что, в console всегда вызывается правильный план, а из веб приложения - через некоторое время, не правильный. После прописания, в жесткую, текста плана внутри процедуры, то процедура начинает нормально исполнятся из обоих "мест", если прописать другой вариант, тормозит так же в обоих местах. Но жесткий план не оптимален - данные добавляются, изменения в базе то же происходят. Данная ситуация была и на 2008 и 2008 R2 серваках. Пока поставил в заданиях очистку кэша через каждые 15 минут, но это костыль.
Вопрос: Как боротся с паразитными планами?
11 апр 13, 05:56    [14165083]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
Glory
Member

Откуда:
Сообщений: 104751
DeAmon2K
В кэше с планами видно, что сначала создается нормальный план, после некоторого времени, возникают еще 2 плана.

Как это - на одну процедуру 3 плана ???

DeAmon2K
Но жесткий план не оптимален - данные добавляются, изменения в базе то же происходят.

Какой план тогда оптимален ?

DeAmon2K
Вопрос: Как боротся с паразитными планами?

Причина перекомпиляции процедуры ловится в Профайлере соответствующим событием.
11 апр 13, 09:17    [14165285]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
DeAmon2K
Member

Откуда: Норильск
Сообщений: 226
Glory
Как это - на одну процедуру 3 плана ???
да, в таблице планов, на эту процедуру - 3 строчки.
Glory
Какой план тогда оптимален ?
хммм... при изменении структуры базы данных, добавлении индексов планы обычно нужно менять, чем и занимается оптимизатор на основании статистики. Если прописать в процедуру железно план, то его надо будет обновлять ручками. А если эта проблема системная, то рано или поздно, количество процедур с "железным" прописанием планов, будет увеличиваться, потом надо будет ходить по ним менять - зачем?
Glory
Причина перекомпиляции процедуры ловится в Профайлере соответствующим событием.
Спасибо, попробую отловить сие, может быть капнет.
11 апр 13, 09:40    [14165362]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
Glory
Member

Откуда:
Сообщений: 104751
DeAmon2K
да, в таблице планов, на эту процедуру - 3 строчки.

В какой именно таблице ?
DeAmon2K
при изменении структуры базы данных, добавлении индексов планы обычно нужно менять, чем и занимается оптимизатор на основании статистики.

Так вы собираетесь оптимизировать запрос с помощью "изменения структуры базы данных, добавления индексов" ?
11 апр 13, 09:50    [14165391]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
DeAmon2K
Member

Откуда: Норильск
Сообщений: 226
Glory
Так вы собираетесь оптимизировать запрос с помощью "изменения структуры базы данных, добавления индексов" ?
я не понимаю к чему этот вопрос? В процедуре не один запрос, и процедура с оптимизирована - в консоли она выполняется с нормальным временем и "нормальным" планом.
11 апр 13, 10:03    [14165451]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
Glory
Member

Откуда:
Сообщений: 104751
DeAmon2K
я не понимаю к чему этот вопрос?

К тому, что гипотетическое "изменение структуры" и практическое - две большие разницы

DeAmon2K
В процедуре не один запрос, и процедура с оптимизирована - в консоли она выполняется с нормальным временем и "нормальным" планом.

В чем проблема тогда ?
11 апр 13, 10:06    [14165467]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
DeAmon2K
Member

Откуда: Норильск
Сообщений: 226
В чем проблема тогда ?
Проблема: процедура при вызове из веб приложения (IIS + .NET 4.0) исполняется так долго (больше 40 секунд), что .NET отваливается по таймауту. Хотя таже процедура с теми же данными, в console выполняется нормально, за время на порядок меньше, чем из приложения. Данных выдается несколько десятков строчек, с 5 столбцами, поэтому вряд ли проблема связанна с трансфером данных.
11 апр 13, 10:10    [14165489]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
Glory
Member

Откуда:
Сообщений: 104751
DeAmon2K
Проблема: процедура при вызове из веб приложения (IIS + .NET 4.0) исполняется так долго (больше 40 секунд), что .NET отваливается по таймауту. Хотя таже процедура с теми же данными, в console выполняется нормально, за время на порядок меньше, чем из приложения. Данных выдается несколько десятков строчек, с 5 столбцами, поэтому вряд ли проблема связанна с трансфером данных.

Если план процедуры пересоздается, то в профайлере видна причина.
11 апр 13, 10:15    [14165511]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
invm
Member

Откуда: Москва
Сообщений: 9842
DeAmon2K
В кэше с планами видно, что сначала создается нормальный план, после некоторого времени, возникают еще 2 плана
sys.dm_exec_plan_attributes

Для начала, ищите для планов различия в set_options, language_id, date_format, date_first.
11 апр 13, 10:20    [14165539]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Тынц
11 апр 13, 10:30    [14165609]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
DeAmon2K
Member

Откуда: Норильск
Сообщений: 226
2invm Спасибо
2Maxx вау!!! Вот оно!!! Спасибо огромное! Если победю, обязательно напишу!
11 апр 13, 10:38    [14165667]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
DeAmon2K
Member

Откуда: Норильск
Сообщений: 226
Да. Это оказалось то что Max (респект большой) написал. Спасибо ВСЕМ за помощь!
11 апр 13, 11:49    [14166154]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
Glory
Member

Откуда:
Сообщений: 104751
DeAmon2K
Это оказалось то что Max (респект большой) написал

Что сразу одновременно все описанные в статье причины ?
11 апр 13, 12:14    [14166362]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
DeAmon2K
Да. Это оказалось то что Max (респект большой) написал. Спасибо ВСЕМ за помощь!

btw ето не я писал,я просто перепостил. Да и на вопрос Glory тоже стоит ответить,хотя бы для самого себя
11 апр 13, 12:38    [14166554]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
DeAmon2K
Member

Откуда: Норильск
Сообщений: 226
автор
Что сразу одновременно все описанные в статье причины ?
сразу помогло ARITHABORT на ON. Исчез таймаут на выполнении процедуры из страничек. По трассировке стало видно, что перекомпиляция проблемной процедуры, после установки этого атрибута - не происходит. Понятно что временная мера и зависит от хитрых ситуаций. Но теперь можно до оптимизировать (видно даже что), что бы этого в принципе не происходило.
12 апр 13, 10:25    [14171205]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
Glory
Member

Откуда:
Сообщений: 104751
DeAmon2K
сразу помогло ARITHABORT на ON. Исчез таймаут на выполнении процедуры из страничек.

Т.е. настройки коннекта в студии и вашем приложении различались ?

DeAmon2K
Понятно что временная мера и зависит от хитрых ситуаций.

Настройки коннекта не зависят от "хитрых ситуаций"
Они зависят от драйверов и от вас.
12 апр 13, 10:36    [14171276]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
DeAmon2K
Member

Откуда: Норильск
Сообщений: 226
Glory
Настройки коннекта не зависят от "хитрых ситуаций"
почитайте статью, перестаньте троллить.
12 апр 13, 10:40    [14171310]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
DeAmon2K
Glory
Настройки коннекта не зависят от "хитрых ситуаций"
почитайте статью, перестаньте троллить.

вы не правы
12 апр 13, 10:41    [14171320]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
Glory
Member

Откуда:
Сообщений: 104751
DeAmon2K
Glory
Настройки коннекта не зависят от "хитрых ситуаций"
почитайте статью, перестаньте троллить.

Я то ее как раз прочитал
Особенно
"Разные планы для разных установок"
и
"Установки по-умолчанию"
А вам по всей видимости надо ее перечитать еще много раз
12 апр 13, 10:43    [14171327]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
DeAmon2K,

Читаем дальше
12 апр 13, 10:43    [14171331]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2012: проблема с IIS и закэшированными планами stored procedure.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Maxx
DeAmon2K,

Читаем дальше

Читаем тоже
12 апр 13, 10:45    [14171353]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить