[질문] Composite 인덱스 생성 문의 0 2 1,574

by 손형선 [2007.10.23 14:03:59]


엔코어 세미나에서

Range+List 의 경우 range(YY, MM) + list(DD) 의 경우

DD 만 where 절에 있어도 인덱스를 탄다고 하였는데,

어떻게 인덱스를 생성해야 되는지 모르겠네요.

 

 drop table test_range_list;
 CREATE TABLE test_range_list
    (yy  VARCHAR2(4),
   mm   VARCHAR2(2),
  dd  VARCHAR2(2)
  )
 
PARTITION BY RANGE (yy, mm)

SUBPARTITION BY LIST (dd)

(PARTITION range_part01 VALUES LESS THAN ('2005', '07')  TABLESPACE GXG_bill02
 (SUBPARTITION VALUES ('01'),
  SUBPARTITION VALUES ('02'),
  SUBPARTITION VALUES ('03'),
  SUBPARTITION VALUES ('04')),

 PARTITION range_part02 VALUES LESS THAN ('2008', '07') TABLESPACE GXG_BILL03
 (SUBPARTITION VALUES ('01'),
  SUBPARTITION VALUES ('02'),
  SUBPARTITION VALUES ('03'),
  SUBPARTITION VALUES ('04'))
);

-- 테스트 데이터 인써트       
INSERT INTO test_range_list VALUES('2002', '06', '01');
INSERT INTO test_range_list VALUES('2003', '06', '02');
INSERT INTO test_range_list VALUES('2004', '04', '03');
INSERT INTO test_range_list VALUES('2005', '02', '04');
INSERT INTO test_range_list VALUES('2006', '01', '01');
COMMIT;

CREATE INDEX compo_local_pre_idx22
ON test_range_list(yy, mm, dd) LOCAL
(
PARTITION range_part01 TABLESPACE gxg_bill_idx01,
 PARTITION range_part02 TABLESPACE gxg_bill_idx02
)

 

-- 인덱스 탐
select * from test_range_list
where yy = '2004' and mm = '04';

 

-- 인덱스 안탐

select * from test_range_list where dd  = '01';

by 현 [2007.10.23 00:00:00]
정말 인덱스를 타는게 맞는건가요?
INDEX SKIP SCAN 말고 정상적으로 타나요?
혹시 그렇다면, 알게 되신다면 좀 자세히 올려 주실 수 있으세요?
자료가 있다면 자료가 있는 링크라도...

by 형선 [2007.10.24 00:00:00]
subpartition의 경우에는 독립적이라서 탄다고 하셨는데.. 쩝.. 어떻게 해야되는것인지 모르겠네요.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입