Hint для отключения индекса при массовой загрузке

HOME_X
Дата: 03.12.2009 13:28:57
Творческого дня уважаемые господа !

Подскажите кто сталкивался ...
Есть таблица - режим работы TRUNCATE
Необходимо загрузить порядка 10-20 млн. записей, при загрузке идет обновление индекса
Можно ли, Hint отключить индекс - после загрузки осуществить
полное обновление индекса ?
Если "ДА" - как именно (пример ...)
И можно ли так работать с первичным ключом
(если есть уверенность что значения ключа не дублируються) ?


Благодарен и признателен !
andrey_anonymous
Дата: 03.12.2009 13:31:46
Попробуйте лодыря в моде direct=true.
Если ему ресурсов на индекс не хватит, то индекс расплачется и сам в unusable убежит :)
Добрый Э - Эх
Дата: 03.12.2009 13:32:09
alter index <index_name> unusable;

Если индекс поддерживает PK, то нужно отключить PK:
alter table <table_name> disable constraint <constraint_name>;
Добрый Э - Эх
Дата: 03.12.2009 13:34:01
забыл про перестройку индекса:

alter index <index_name> rebuild online;

А уж включать в зад РК или нет - тебе решать.
andrey_anonymous
Дата: 03.12.2009 13:40:07
Добрый Э - Эх

Автор вроде как hint просил - возможно, не имеет возможности alter перед загрузкой прокрутить...
HOME_X
Дата: 03.12.2009 13:45:27
andrey_anonymous
Попробуйте лодыря в моде direct=true.
Если ему ресурсов на индекс не хватит, то индекс расплачется и сам в unusable убежит :)


Спасибо господа за участие и советы

Тут не в ресурсе дело, в СКОРОСТИ загрузки ...
без индекса - отменно
с индексом под конец (на 10-15 млн..записи ) - тормоза (не тормозимся !!)
HOME_X
Дата: 03.12.2009 13:57:34
andrey_anonymous
Добрый Э - Эх

Автор вроде как hint просил - возможно, не имеет возможности alter перед загрузкой прокрутить...


Угу - угу - угу ..
Пытаюсь, может на процедурой оформлю
с динамич. выполнение execute immediate 'alter ....'
И попутно вопрос такой alter (динамический) необходимо делать
в пределах одной транзакции, или не имеет значение

execute immediate 'alter index RISKLIST#SC_VAL unusable';
delete ........
insert into
  select *
    from T_SAP_KP 
  commit;
  execute immediate 'alter index RISKLIST#SC_VAL rebuild online';
До или после COMMIT ? - он динамический вроде

Благодарен и признателен !
DВА
Дата: 03.12.2009 14:01:18
HOME_X


unusable - это для всех и навсегда :)
andrey_anonymous
Дата: 03.12.2009 14:03:31
HOME_X

До или после COMMIT ?

В приведенном тексте - можно и вместо commit

delete ........ 
поменяйте на обещанный truncate
И тогда можно вместо "insert into" попробовать insert /*+ append */ into
HOME_X
Дата: 03.12.2009 14:04:20
DВА,

Т.е. хотите сказать Hinta - НЕТУ ?