30.01.2004, 09:28 | #21 |
Участник
|
У меня в SQL - профайлере получились такие результаты:
-) Statment exec sp_cursorfetch 180150002, 2, 1, 1 exec sp_cursor 180150002, 40, 1 Всего, около 2000 команд общей продолжительностью 5 секунд -) While select exec sp_cursorfetch 180150001, 2, 1, 8 Всего около 125 команд общей продолжительностью 0.5 секунд Т.е. если я правильно понял - это просто так работает Axapta, что из родных таблиц тянет данные бОльшими кусками Тогда возвращаемся к тому, с чего началась данная тема: При сложных выборках, когда не всю информацию можно получить из Query (требуются дополнительные сложные вычисления) есть путь кардинального (на порядок и больше) увеличения скорости получения выборки. Это то, что я описал в самом начале данной темы -) Создать таблицу на сервере -) Выполнить хранимую процедуру сервера по наполнению этой таблицы -) Средствами Axapta сделать выброс из этой таблицы в текстовый файл Правда в такой идеологии 2 большие проблемы: -) Конвертация Query в синтаксис MS SQL -) Генерация значений RecID в таблице Но если базовый отчет средствами Axapta может выполнятся часами, то выполнение отчета напрямую на сервере сокращает это время до нескольких минут. Вобщем теперь понятно, что происходит. Спасибо. |
|