테이블 튜닝 문의- 자동증가 컬럼, 인덱스 등. 0 1 1,767

by 아리수 [2019.10.16 16:08:09]


안녕하세요. 

데이터베이스는 오라클 11g  입니다. 

현재 테이블에 시간 순(1초 간격) 데이터가 계속해서 저장(INSERT)되고 있는 다음과 같은 테이블이 있습니다. 

 

테이블은 간략하게

create table tab_seq
(
    ins_dtime date default sysdate not null,
    tab_idx    NUMBER
    tab_col1   number(10)
);

입니다.

여기서 select 속도를 높이기 위해서 

tab_idx 는 자동증가 컬럼으로 사용하고 

ins_dtime , tab_idx를 unique index로 생성하여 사용하려고 합니다. 

이 부분에 대해서 맞게 사용하는 건지 궁금합니다. 

 

2번째 질문은. 

tab_idx 컬럼을 자동증가 컬럼으로 INSERT시 sequence의 NEXTVAL을 사용하지 않고 자동으로 입력되게 할수는 없나요.?

테이블에 INSERT를 해주는 프로그램이 NEXTVAL 과같은 쿼리 튜닝을 할수 없어서 ins_Dtime 처럼 생성시 default 조건으로 생성되어야 할 꺼 같은데

할 수 있는지 궁금합니다. 

 

by 마농 [2019.10.16 16:27:09]

1. UK 설정
 - tab_idx 는 자동증가 컬럼으로 만들었다면?
 - tab_idx 만으로도 유니크한데 굳이 두개를 엮어서 유니크인덱스를 만들 필요는 없어 보입니다.
2. 자동증가컬럼 사용
 - 오라클에는 자동증가컬럼이 없습니다.
 - 시퀀스를 이용해야 합니다.
3. 자동증가컬럼 필요?
 - 이 테이블에 시퀀스 컬럼이 굳이 필요한가? 생각해볼 문제입니다.
 - date 로 중복 가능성이 있다면? timestamp 를 이용해도 됩니다.
4. 또한 PK 가 필요한가도 생각해 볼 문제입니다.
 - 단순 로그성 테이블이라면?
 - PK 없이 그냥 인덱스만 만들어도 될 듯 하네요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입