2010-08-11 4 views
-1

У меня есть важная проблема с запуском процесса ETL в производственной среде. Пока мой ETL работает, OLAP-сервер работает очень медленно, я думаю, это связано с тем, что ETL обновляет несколько существующих строк в таблице фактов и добавляет новые. Я попытался избежать этой проблемы, имея целую репликацию базы данных и запись ETL в DB1 и OLAP-сервере, прочитанные из DB2 (реплицированные). Это не работает вообще.Проблема с производительностью ETL

Можете ли вы дать мне несколько советов, которые указывают мне правильные решения, чтобы избежать этой проблемы.

Я использую SQL Server 2005. ОЗУ 8 ГБ Серверный сервер Mondrian OLAP на сервере Jboss. 8 ГБ оперативной памяти. ETL работает каждые 3 часа и работает 2 часа.

Буду признателен за любую помощь.

ответ

2

Попросите ETL запустить его в новую таблицу, затем используйте ALTER TABLE ... SWITCH PARTITION для переключения новых данных в таблицу фактов. См. Transferring Data Efficiently by Using Partition Switching. Я бы тоже пересмотрел сам ETL, учитывая, что он может import about 2TB/hour с хорошо настроенным процессом ETL, вы, вероятно, можете сжать немного больше производительности самостоятельно, я сомневаюсь, что вы импортируете 4TB каждые 3 часа ...

Что касается идея использования репликации для облегчения проблем с загрузкой, все, что я могу сказать, заключается в следующем: репликация всегда будет добавить к загрузке, так как сам процесс репликации довольно дорогой. Каждая вставка, обновление, удаление в издателе также является вставкой, обновлением или удалением на подписчике, и есть дополнительные накладные расходы на обнаружение изменений в издателе, накладные расходы на распространение и внесение изменений на подписчике ... просто собирается сложить, не вычитайте ничего.

Смежные вопросы