Показать сообщение отдельно
Старый 15.11.2005, 14:48   #1  
Горбунов Дмитрий is offline
Горбунов Дмитрий
Участник
 
10 / 11 (1) +
Регистрация: 16.11.2004
Адрес: С-Петербург
? Ускорение выполнения запроса 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 способ на более цивилизованный???

Всем спасибо