Я Загружаюсь большой никакие из строк в таблицу из csv файла данных. Для каждых 10 000 записей я хочу обновить indexs на таблице для оптимизации (статистика обновления). Какое-либо тело говорит мне, какова команда, которую я могу использовать? Также что является SQL Server "UPDATE STATISTICS", эквивалентный в индексной оптимизации средств статистики Обновления Oracle.is или gatehring статистике. Я использую Oracle 10 г и 11 г.Заранее спасибо.
Оптимизация индекса - сложный вопрос. Вы можете COALESCE индекс, чтобы удалить соседние пустые блоки, и вы можете ПОВТОРИТЬ индекс, чтобы полностью удалить и воссоздать его. На мой взгляд, что вы, возможно, захотите сделать в период загрузки данных, - это сделать индексы НЕИСПОЛЬЗУЕМЫМИ, а затем, когда вы закончите, СОЗДАЙТЕ их ПОВТОРНО.
ALTER INDEX my_table_idx01 DISABLE;
-- run loader process
ALTER INDEX my_table_idx01 REBUILD;
Вам нужно собрать статистику только один раз, когда вы закончите, и это будет сделано с помощью вызова DBMS_STATS, например:
EXEC DBMS_STATS.GATHER_TABLE_STATS ('my_schema', 'my_table');
Я бы порекомендовал использовать другой подход. Я бы отбросил индексы, загрузил данные, а затем воссоздал бы индекс. После включения Oracle создаст хороший индекс для данных, которые вы только что загрузили. Здесь выполняются две вещи: записи будут загружаться быстрее, и индекс будет перестроен с правильно сбалансированным деревом. (Примечание: будьте осторожны, если таблица действительно большая, вам может потребоваться объявить временное табличное пространство для ее работы.)
drop index my_index;
-- uber awesome loading process
create index my_index on my_table(my_col1, my_col2);