Sonntag, Mai 29, 2011

Data Loading

Randolf Geist liefert in seinem Blog eine sehr lesenswerte Zusammenfassung der Dinge, die man zur Handhabung von Indizes bei Massendatenladevorgängen wissen sollte - und die eine solidere Grundlage für diverse Behauptungen gibt, die ich hier vor kurzem aufgeschrieben hatte. Neu für mich war, dass ein TRUNCATE einen Index wieder VALID werden lässt:

create table test 
as 
select rownum id 
  from dual 
connect by level <= 1000;

create index test_idx on test(id);

alter index test_idx unusable;

select index_name
     , status 
  from user_indexes 
 where table_name = 'TEST';
 
INDEX_NAME                     STATUS
------------------------------ --------
TEST_IDX                       UNUSABLE

truncate table test;

select index_name
     , status 
  from user_indexes 
 where table_name = 'TEST';

 INDEX_NAME                     STATUS
------------------------------ --------
TEST_IDX                       VALID

Hilfreich sind auch die diversen Links auf Richard Footes Erläuterung der Unterschiede zwischen unique und nonunique indexes - und auf des Herrn Geists eigene Untersuchungen zum Verhalten von Constraints.

Keine Kommentare:

Kommentar veröffentlichen