Ускорение выполнения запроса Oracle + MS Axapta
Всем привет!
Проблема: как ускорить быстродействие выполнения запроса цивилизованным методом???
Наличие индекса DATAAREAID снижает скорость выполнения запроса в 50 раз (24 ч. и 30 мин.). Однако, без этого поля я не могу дублировать данные компании в системе Аксапта (одна таблица на все компании).
Варианты решения проблемы:
1. Отключаю на всех критичных таблицах параметр SaveDatePerCompany. И работаю только в одной компании.
Минусы:
1. В качестве дублирования данных я могу использовать только механизм DUMP системы Oracle
2. Т.к. компания одна, а транзакций целая туча RECID быстро переполнится (1 год)
Плюсы:
1. Скорость выполнения запросов приемлимая
2. Очень дикий способ: пусть на всех таблицах стоит параметр SaveDatePerCompany.
2.1. Я средствами Oracle очищаю индексы от DATAAREAID на критичных таблицах
2.2. Запускаю необходимый запрос
2.3. Восстанавливаю индексы DATAAREAID средствами Oracle (синхронизация базы данных в MS Axapta приводит к аналогичному результату)
Минусы:
1. Реакция MS Axapta непредсказуемая (хотя у меня всё проходило успешно)
Плюсы:
1. Скорость выполнения запросов приемлимая
2. RECID нас не ограничивает, т.к. кол-во компаний не ограничено
Подскажите как можно заменить 2 способ на более цивилизованный???
Всем спасибо
|