AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.06.2011, 19:37   #1  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
SSRS резкая деградация производительности.
Отчет SSRS использует хранимую процедуру MS SQL. Пока отчет вызываю даже не из Аксыи не из IE, а с помощью MS Visual Studio.
Хранимая процедура создает временную таблицу, заполняет её несколькими запросами из InventTrans. В конце процедуры производится выборка из этой временной таблицы и таблица удаляется.
Первые 2-3 запуска отчета работают в соответствии с теорией (при первом запуске производится построение планов запроса, кэшируется запрос ит.п.), в итоге, первый запуск отрабатывает за 3,5 минуты, второй и третий за две - две с небольшим минуты.
А вот последующие запуски выполняются все медленнее и медленнее. Так 5-6 запуск отрабатывает за 6-8 минут, а десятый вообще вылетает по таймауту. (с одними и теми же параметрами).
Сначала я грешил на сам SSRS и Visual Studio. Но, переписал хранимую процедуру на простой скрипт и получил ту же самую ситуацию: второй-третий запуск работают быстрее, чем первый, а далее резко падает производительность.
После перезапуска сервера MS SQL опять первые запуски работают как положено, а последующие тормозят.
Может быть кто-то сталкивался с таким поведением и знает рецепты?
Старый 27.06.2011, 09:19   #2  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
я бы посмотрел, что творится с tempdb и диском, где она лежит.
За это сообщение автора поблагодарили: Raven Melancholic (2).
Старый 27.06.2011, 09:50   #3  
egorych is offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Регистрация: 09.11.2006
Адрес: Краснодарский край
Может попробовать использовать
- не процедуру, а функцию и
- не временную таблицу, а табличную переменную?
Где-то читал, что МС рекомендует пользовать именно табл. переменные.
__________________
Axapta 3.0 sp - хз какой, kr2
За это сообщение автора поблагодарили: Raven Melancholic (5).
Старый 27.06.2011, 14:17   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
А если в определение процедуры добавать опцию WITH RECOMPILE чтобы исключить влияние ранее рассчитанного плана?
За это сообщение автора поблагодарили: Raven Melancholic (2).
Старый 27.06.2011, 14:38   #5  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Wamr Посмотреть сообщение
я бы посмотрел, что творится с tempdb и диском, где она лежит.
Смотрел. Очередь к дискам практически на нуле, места полно, сама база tempdb растет несильно - в принципе, сама временная таблица не очень большая, в неё пишутся уже просуммированные данные.
Старый 27.06.2011, 14:38   #6  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от egorych Посмотреть сообщение
Может попробовать использовать...
О, спасибо, попробую такой вариант.
Старый 27.06.2011, 14:39   #7  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
А если в определение процедуры добавать опцию WITH RECOMPILE?
Спасибо за совет, попробую.
Старый 27.06.2011, 15:37   #8  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
вспомнил одну историю...
Давным давно, в Перекрестке на SQL 2000 была такая же проблема.
Тогда причину найти не удалось и сделали затычку. При работе процедурка писала в специальную табличку длительность своей работы, и когда этот параметр вылезал за определенное значение автоматически запускался RECOMPILE процедуры.
Теги
reporting services, производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxbi: Thoughts on the AX Technical Conference and A Preview of SSRS Report Development in Dynamics AX 2012 Blog bot DAX Blogs 1 07.02.2011 14:59
dynamics-ax: Expert SSRS with AX Tip from Michael Stashwick Blog bot DAX Blogs 0 14.01.2011 05:18
kamalblogs: Data methods in Ax Reports and SSRS Reports Blog bot DAX Blogs 0 22.12.2010 12:11
DeniZone: AX6, Reports and SSRS Blog bot DAX Blogs 0 27.10.2010 17:05
gatesasbait: Dynamics AX 2009 SSRS and SSAS Integration Tips Blog bot DAX Blogs 3 09.07.2009 13:07

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:33.