3
인덱스 구성 테이블에 이상한 문제가 있습니다. 저는 Oracle 11g 표준을 실행하고 있습니다.인덱스 구성 테이블 생성 문제
내가 지금의 다른 테이블을 생성하고 그것은 오라클 < 2 분했다
set timing on
SQL> create table dest_table(id number(16), hash number(20), type number(1));
Table created.
Elapsed: 00:00:00.01
SQL> insert /*+ APPEND */ into dest_table (id,hash,type) select id, hash, 1 from src_table;
21108244 rows created.
Elapsed: 00:00:15.25
SQL> ALTER TABLE dest_table ADD (CONSTRAINT dest_table_pk PRIMARY KEY (HASH, id, TYPE));
Table altered.
Elapsed: 00:01:17.35
src_table
에서 2 열을 복사 할 수SQL> desc src_table;
Name Null? Type
--------------- -------- ----------------------------
ID NOT NULL NUMBER(16)
HASH NOT NULL NUMBER(3)
........
SQL> select count(*) from src_table;
COUNT(*)
----------
21108244
src_table 테이블이있다.
지금 같은 운동을하지만 IOT 테이블
SQL> CREATE TABLE dest_table_iot (
id NUMBER(16) NOT NULL,
hash NUMBER(20) NOT NULL,
type NUMBER(1) NOT NULL,
CONSTRAINT dest_table_iot_PK PRIMARY KEY (HASH, id, TYPE)
) ORGANIZATION INDEX;
Table created.
Elapsed: 00:00:00.03
SQL> INSERT /*+ APPEND */ INTO dest_table_iot (HASH,id,TYPE)
SELECT HASH, id, 1
FROM src_table;
IOT는 18시간 소요에 "삽입"! 필자는 win과 linux에서 실행되는 Oracle의 2 가지 다른 인스턴스에서 동일한 결과를 얻었습니다.
여기에 무슨 일이 일어나고 있습니까? 왜 그렇게 오래 걸리나요?
@Dave. 당신은 절대적으로 옳습니다. select 문 (IOT 테이블의 기본 키와 같은 순서)에 order by 절을 추가 한 후 IOT 테이블을 생성하는 데 2 분이 걸렸습니다. 감사. – mtim