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

Откуда: Прага
Сообщений: 247
Всем привет!
В последнее время клиенты стали жаловаться на тормоза работы нашего приложения.

Имеем следующее: набор процедур, которые возвращают список продуктов в корзине. Типов продуктов 5, под каждый своя процедура.

При этом, 4 процедуры ведут себя вполне объяснимо, а вот пятая делает следующее: со временем скорость ее выполнения деградирует грубо в 6 раз. Т.е. делаем этой процедуре ALTER. Корзина рисуется за 2 секунды. Ждём пол часа, и видим уже скорость отрисовки страницы - 12 секунд. Делаем ALTER процедуры и опять всё возвращается на 2 секунды... Голову сломал, в чем может быть причина такого странного поведения?
25 июл 13, 14:50    [14616551]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35376
Блог
cavalero,

статистика/план запроса?
25 июл 13, 14:55    [14616592]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение  [new]
cavalero
Member

Откуда: Прага
Сообщений: 247
В каком виде лучше выложить Execution Plan? В сыром виде из SQL сервера он содержит инфу с продакшна, которую не хотелось бы выкладывать.
25 июл 13, 15:16    [14616750]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
cavalero,

Причин появляющихся и исчезающих тормозов может быть много начиная от блокировок и заканчивая памятью, например. Но если вы четко увязываете ре-компиляцию процедуры и повышение быстродействия - первое что приходит в голову это неудачный план и прослушивание параметров.
Можете пока почитать про это, если не сталкивались, вот несколько ссылок:
Методика, которая гарантирует в SQL Server 2000 выбор определенного плана исполнения запроса
Parameter Sniffing
The Elephant and the Mouse, or, Parameter Sniffing in SQL Server

Планы лучше выкладывать парой (быстрый и медленный), так проще понять в чем дело. Сами планы должны быть действительные (actual), а не оценочные (estimated).
Если не хочется раскрывать названия таблиц и колонок качайте бесплатный (или платный, если хотите) Plan Explorer.
Там, в последней версии есть функция анонимизации.
Картинка с другого сайта.
Anonymize your plan details natively in Plan Explorer
25 июл 13, 15:49    [14617010]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение  [new]
cavalero
Member

Откуда: Прага
Сообщений: 247
SomewhereSomehow, большое человеческое спасибо за очень человеческий для форумов ответ!

Прежде чем дальше задавать вопросы ознакомлюсь с теоретической частью.

В принципе, при просмотре оценочного плана management studio дало подсказку по поводу добавления одного индекса.

Кажется это помогло, но надо будет замерить время выполнения спустя некоторое время.
25 июл 13, 16:28    [14617350]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить