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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.03.2015, 15:04   #1  
N.D.P. is offline
N.D.P.
Участник
 
6 / 14 (1) ++
Регистрация: 18.07.2007
DAX 2009 - Трассировка долгих SQL-запросов в пакетном режиме
Доброго времени суток.

Кто-нибудь сталкивался с такой проблемой, как не работающая трассировка длинных SQL запросов в пакетном режиме?

Суть проблемы следующая: для тестового пользователя настроена трассировка длинных SQL запросов с отсечкой по апертуре в 20 мс. Есть код, который содержит запрос, который выполняется гарантированно дольше, чем 20 мс (класс Tutorial_RunBaseBatch):

X++:
public void run()
{
    int64 i;
    inventsettlement inventsettlement;

    #OCCRetryCount
    if (! this.validate())
        throw error("");

    try
    {

        i = WinAPIServer::getTickCount();

        select count(recId) from inventsettlement;

        info(strfmt("%1 ms", WinAPIServer::getTickCount() - i));
    }
    catch (Exception::Deadlock)
    {
        retry;
    }
    catch (Exception::UpdateConflict)
    {
        if (appl.ttsLevel() == 0)
        {
            if (xSession::currentRetryCount() >= #RetryNum)
            {
                throw Exception::UpdateConflictNotRecovered;
            }
            else
            {
                retry;
            }
        }
        else
        {
            throw Exception::UpdateConflict;
        }
    }

}
При запуске в клиентской сессии трассировка успешно выводится в инфолог и попадает в таблицу SysTraceTableSQL. При запуске в пакетном режиме - не попадает никуда (при этом в инфолог из кода выводится сообщение вида X ms, где X > 20, т.е. запрос работает точно дольше, чем настроенная отсечка). Пробовал, пользуясь глобальными брейкпоинтами ставить точку останова в Application.sysTrace - не вызывается.

Есть ли решение данной проблемы или трассировка запросов в пакетном режиме вообще не работает в принципе и нужно пользоваться профайлером SQL?

DAX 2009 SP1, kernel 5.0.1600.3900.
SQL 2008 R2 Enterprise (x64).
Windows Server 2008 R2 Enterprise (x64).
Старый 16.03.2015, 17:41   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,260 / 2162 (79) +++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Сталкивались с той же проблемой. Решения не нашли.

Если вам важно протрассировать именно в какое-то неудобное время (например, ночью) - попробуйте запустить пакет в старом режиме через клиент ax32.exe
Тогда и пакет отработает и трассировка гарантированно будет.
За это сообщение автора поблагодарили: N.D.P. (1).
Старый 16.03.2015, 17:45   #3  
N.D.P. is offline
N.D.P.
Участник
 
6 / 14 (1) ++
Регистрация: 18.07.2007
Да, спасибо, мы пока тоже на этом остановились для решения проблемы с конкретным заданием. Жаль, что не работает, хотелось ещё настроить "профилактический" сбор долгих запросов.
Старый 17.03.2015, 21:35   #4  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,443 / 1571 (59) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от N.D.P. Посмотреть сообщение
Жаль, что не работает, хотелось ещё настроить "профилактический" сбор долгих запросов
Все "тяжелое" (с разными критериями "тяжести" - reads \ cpu \ duration) можно брать из DMV, разве что только без стэка вызова. Но как правило, после года-двух работы с одним и тем же приложением с ним срастаешься настолько что локализация проблем не вызывает
__________________
-ТСЯ или -ТЬСЯ ?
Старый 18.03.2015, 09:13   #5  
N.D.P. is offline
N.D.P.
Участник
 
6 / 14 (1) ++
Регистрация: 18.07.2007
Да, тоже верно. Правда не только без трассировки стека, но и без возможности настраивать разные отсечки и включать/отключать сбор данных в зависимости от пользователя. Зато план исполнения можно смотреть в нормальном виде (если, конечно, он ещё в кэше).
Теги
sql, пакетная обработка, трассировка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX Sustained Engineering: Announcing Compatibility Certification of SQL Server 2012 and SQL Server 2012 SP1 with Dynamics AX 2009 SP1 Blog bot DAX Blogs 3 27.05.2013 14:41
emeadaxsupport: Capturing an AX User’s SQL SPID over multiple AOS servers in AX 2009 Blog bot DAX Blogs 0 16.05.2013 19:11
semanticax: Dynamics AX 2009 Installation - Application Blog bot DAX Blogs 0 22.12.2010 08:11
DAX 2009 SP1 + MS SQL Server 2008 xshaman DAX: Администрирование 7 10.12.2008 12:26
msdynamicsax: Enterprise Portal development in DAX 2009 Blog bot DAX Blogs 0 18.04.2008 07:06
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:31.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.