16.03.2015, 15:04 | #1 |
Участник
|
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; } } } Есть ли решение данной проблемы или трассировка запросов в пакетном режиме вообще не работает в принципе и нужно пользоваться профайлером 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 |
Участник
|
Сталкивались с той же проблемой. Решения не нашли.
Если вам важно протрассировать именно в какое-то неудобное время (например, ночью) - попробуйте запустить пакет в старом режиме через клиент ax32.exe Тогда и пакет отработает и трассировка гарантированно будет. |
|
|
За это сообщение автора поблагодарили: N.D.P. (1). |
16.03.2015, 17:45 | #3 |
Участник
|
Да, спасибо, мы пока тоже на этом остановились для решения проблемы с конкретным заданием. Жаль, что не работает, хотелось ещё настроить "профилактический" сбор долгих запросов.
|
|
17.03.2015, 21:35 | #4 |
Модератор
|
Все "тяжелое" (с разными критериями "тяжести" - reads \ cpu \ duration) можно брать из DMV, разве что только без стэка вызова. Но как правило, после года-двух работы с одним и тем же приложением с ним срастаешься настолько что локализация проблем не вызывает
__________________
-ТСЯ или -ТЬСЯ ? |
|
18.03.2015, 09:13 | #5 |
Участник
|
Да, тоже верно. Правда не только без трассировки стека, но и без возможности настраивать разные отсечки и включать/отключать сбор данных в зависимости от пользователя. Зато план исполнения можно смотреть в нормальном виде (если, конечно, он ещё в кэше).
|
|
Теги |
sql, пакетная обработка, трассировка |
|
|