Показать сообщение отдельно
Старый 07.11.2006, 15:15   #1  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
Cool Производительность запроса в отчете
Ax3.0sp2 на MSSQL2kSP3:
Есть отчет (по custInvoiceJour + custInvoiceTrans, но это не имеет особого значения). Наворотов нет, то есть квери и отчет подготавливаются базовыми классами, фетчится и выводится.
В запросе отчета, присоединяются еще 2 таблицы и строится отчет за ПЕРИОД по СКЛАДУ1, по которому идет основная отгрузка (+ еще некоторые параметры). Время отрытия курсора несколько секунд, далее построение отчета.
Если в этом же запросе меняется только СКЛАД на редко используемый (например БРАК - записей по этому складу за заданный период нет). запрос на выборку отрабатывает 2 с лишним минуты!!! (индекс по датам есть)
Собственно вопрос почему и что делать???

Мониторил средствами аксапты и профайлером. План исполнения хороший (индексы по всем связкам). В QA запрос отрабатывает пару сек. с любым складом. Профайлер действительно подтвержает что запрос из Axapta исполнялся порядка 150 сек. Eдинственное отличие в том что Axapta использует cursor functionality of ADO, OLE DB, ODBC; а QA Батчем напрямую. И еще: количество чтений (Number of page reads issued by the RPC) при исполнении запроса Axapta порядка 1,500,000 и этот же запрос QA порядка 200,000. Не пойму в чем причина такой разницы???
__________________
--- SHiSHok

Последний раз редактировалось SHiSHok; 07.11.2006 в 16:47.