SAP-мучитель написал(а):
Сам себе похоже вопросы задаю. Прелесть. Тогда еще спрошу.
В документации сказано, что F-таблица автоматом разбивается на партиции, а E-таблица - только вручную. То есть каждый запрос
при загрузке попадает в собственную партицию. Таким образом при
загрузке 100 запросов без их сжатия мы получим 100 партиций на E-
таблице. Для каждой партиции создаются локальные индексы.
Следовательно - удаление индекса, загрузка в куб и создание
индекса для одного запроса будут задействовать только одну партицию. Это означает, что потерь в производительности при удалении и создании индекса быть не должно (при условии, что при этих операциях не задействуются глобальные индексы?!). Короче, нет ничего плохого в удалении и создании индекса при каждой загрузке.
Или я ошибаюсь?
если создаем цепочку, то drop index и create index перед выполнением пакета вставляются по умолчанию ( если сие не отключено в настройках ) . по хорошему так должно и быть. при запуске отдельного пакета так и происходит - дропается индех, загружается информация, потом создается индекс. В общем случае загрузка в таком режиме эффективнее и быстрее проходит, нежели если индекс будет престраиваться находу при записи каждой записи. При этом вновь создаваемый индекс - особенно для b-tree индекса по опредлению будет сбалансированным и "хорошим", что не может не сказаться на общей производительности.
пожтому в персоздании индекса при загрузке нет ничего криминального. к тому же в момент загрузки данные в кубе все равно будут не доступны. Загрузка происходит как правило ночью - ну и какая к лешему разница в этом случае - будет ли дропаться индекс или нет? само по себе создание индекса - не такая уж трудная операция, особенно если следовать рекомендациям сапа и не держать в кубе более 2 млн записей (логическое партицирование)