18.06.2011, 16:54 | #1 |
NavAx
|
Медленное выполнение запроса
Всем доброе время суток.
Столкнулся с такой проблемой: простой запрос на поиск одной записи по кластерному индексу (а именно его и показывает план выполнения запроса в SQL MS) в аксапте выполняется 16 мс (включал трассировку запросов с апертурой = 1 мс). Это например RAssetTable::find("1111111"). По другим запросам (некластерный индекс, несколько полей выборки) тоже работает как то не быстро, хотя если запрос выполнить SQL MS, то выполняется практически мгновенно. Full Scan не наблюдается, т.е. индексы выбираются правильные. Дефрагментация таблицы порядка 30%. Axapta 4.0, сервер базы данных SQL 2008 R2, АОС в кластере (аксаптовский кластер 3 экземпляра). Просьба Вам: посоветуйте направление, в котором искать решение. Спасибо. |
|
18.06.2011, 17:16 | #2 |
Участник
|
Не стоит настраивать апертуру меньше 15 миллисекунд. Счетчик внутри Аксапты работает именно с такой точностью. так что если она вам показывает что запрос длился 15 миллисекунд - то реально он мог длиться 1 миллисекунду или меньше.
Лучше написать свой способ замера времени. Например как тут : Измерение времени точнее чем Winapi::getTickcount() |
|
|
За это сообщение автора поблагодарили: Roman777 (2). |
18.06.2011, 17:23 | #3 |
NavAx
|
Т.е. доверять встроенному анализатору запросов в таком случае не стоит?
|
|
18.06.2011, 21:12 | #4 |
Участник
|
Цитата:
Смешно было видеть когда он выдавал в 2009-й аксапте для функции типа получения текущего даты времени время порядка 15 миллисекунд, хотя дураку понятно что такой запрос к БД исполняется миллионные доли секунды. Используйте свой таймер. Например, как я по ссылке указал. |
|
20.06.2011, 09:39 | #5 |
----------------
|
используйте стандартный SQL Profiler
Только он дает 99,5% точной информации того что происходит на сервере БД |
|
23.06.2011, 10:07 | #6 |
NavAx
|
Всем добрый день.
Продолжу в этой ветке. Ситуация следующая: выполнение разноски накладной по закупке (48 строк) в рабочей базе выполняется порядка 6 минут, на такой же базе и с таким же приложением, но установленным локально на рабочей станции - меньше минуты. Настройки сервера SQL и AOS идентичны. Рабочая база расположена на кластеризованном сервере SQL 2008 (48 процессоров, память 15 Гб, размер базы ~ 50 Гб), AOS собран в кластер из трех AOS на отдельном от базы сервере, между серверами канал 1Гб. Подскажите, в чем может быть причина такой разницы во времени выполнения? Спасибо |
|
23.06.2011, 13:04 | #7 |
NavAx
|
Неужели ни у кого такое не встречалось?
Может антивирус на серверах затормаживает процесс обмена данных AOS и SQL или брендмауер или еще что-то? |
|
23.06.2011, 14:36 | #8 |
Ищущий знания...
|
рабочие АОС и база стоят на разных серваках?
если да, то в одном домене? на мой взгляд, если нет проблем когда все установлено на одной машине, значит дело в сети. попингуйте серваки, посмотрите нет ли потерь и какие они. может там кто то мешает и забивает канал.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
23.06.2011, 14:38 | #9 |
NavAx
|
AOS и SQL на разных серверах. тестировал AOS с доступом в отдельную базу (на отдельном слабом сервере) - все нормально. Есть подозрение на кластер SQL рабочей базы.
|
|
23.06.2011, 15:04 | #10 |
Модератор
|
Есть предложение снести кластер нахрен и посмотреть что получится. Если серьезно - запрос и план исполнения покажете или предлагаете продолжать гадать на кофейной гуще?
__________________
-ТСЯ или -ТЬСЯ ? |
|
23.06.2011, 15:11 | #11 |
NavAx
|
Смотрел я планы исполнения и на сервере в кластере и на отдельном сервере SLQ на одинаковых базах - планы одинаковы!
|
|
23.06.2011, 15:15 | #12 |
Модератор
|
Значит, не покажете. Хозяин - барин, как говорится
__________________
-ТСЯ или -ТЬСЯ ? |
|
23.06.2011, 15:19 | #13 |
Модератор
|
Цитата:
Сообщение от Roman777
Всем добрый день.
Продолжу в этой ветке. Ситуация следующая: выполнение разноски накладной по закупке (48 строк) в рабочей базе выполняется порядка 6 минут, на такой же базе и с таким же приложением, но установленным локально на рабочей станции - меньше минуты. Настройки сервера SQL и AOS идентичны. Рабочая база расположена на кластеризованном сервере SQL 2008 (48 процессоров, память 15 Гб, размер базы ~ 50 Гб), AOS собран в кластер из трех AOS на отдельном от базы сервере, между серверами канал 1Гб. Подскажите, в чем может быть причина такой разницы во времени выполнения? Спасибо Логи системы? Сбои с RAID ? как RAID организован? Блокировки?
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. Последний раз редактировалось Poleax; 23.06.2011 в 15:21. |
|
23.06.2011, 15:23 | #14 |
NavAx
|
Цитата:
Сообщение от Poleax
Не пробывал тему подымать на http://www.sql.ru/forum/actualtopics.aspx?bid=1 ?
Логи системы? Сбои с RAID ? как RAID организован? Блокировки? |
|
23.06.2011, 15:24 | #15 |
Модератор
|
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
24.06.2011, 10:24 | #16 |
Модератор
|
Была как то серьезная тема: Существенное снижение производительности после перехода на AX 2009 с Axapta 3.0 + к ней дополнение http://www.sql.ru/forum/actualthread...=843654&hl=aos
Roman777 если создадите тему на другом форуме, запостите ссылку в этой теме. Интересно почитать, что рекомендуют.
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
|
За это сообщение автора поблагодарили: Roman777 (2). |
24.06.2011, 10:54 | #17 |
NavAx
|
Хорошо, спасибо.
|
|
24.06.2011, 12:37 | #18 |
Участник
|
Это ж кто Вам посоветовал такую конфигурацию? Я бы 40 процессоров выключил и наслаждался нормальной работой!
__________________
Axapta 3.0 sp - хз какой, kr2 |
|