시퀀스
▶ 자동증가수
시퀀스 생성
CREATE SEQUENCE seq_no
Minvalue 1 -- 최소숫자
Maxvalue 9999999999 -- 최대숫자
Increment by 1 -- 증가치
start with 1 -- 시작숫자
nocache -- 조금빠르게 접근가능한 옵션
noorder -- 요청되는 순서대로 할당
nocycle -- 다시 재반복여부
;
시퀀스 호출방법
▶시퀀스이름.nextval : 다음 생성할 시퀀스 값
▶ 시퀀스이름.currval : 현재 시퀀스 값
SELECT seq_no.nextval from dual;
SELECT seq_no.currval from dual;
예제
CREATE TABLE temp(
no NUMBER Primary key,
name VARCHAR2(20),
indate DATE
);
INSERT INTO temp
VALUES (seq_no.nextval, '뿅뿅1', sysdate);
INSERT INTO temp
VALUES (seq_no.nextval, '뿅뿅1', sysdate);
SELECT * FROM temp;
인덱스
▶ 빠른검색을 위한 데이터
-- 자주 사용되는 컬럼을 인덱스컬럼으로 선택 ( WHERE 조건이나 조인시 많이 사용하는 컬럼 )
-- 데이터량이 많은 경우 > 20%정도 되는 데이터를 조회할 때는 월등히 빠릅니다.
-- 데이터 변경이 적을 경우에서의 인덱스 사용은 좋습니다.
-- 데이터의 양이 적은 테이블은 인덱스와 무관할 정도의 속도가 나옵니다.
▶ 조회 > 미리 사전에 정의된 검색어를 만드는 것
▶ PK, UNIQUE > 식별 가능한 데이터이기 때문에 미리 인덱스화
인덱스 지침
▶ 많은 것이 좋은것은 아닙니다.
-- DML이 진행이 되면 인덱스 갱신해야 하기 때문에 속도 저하
▶ WHERE 조건과 join 조건으로 자주 사용하는 경우에만 작성 권장
▶ 생성하지 않을 경우 : 테이블이 적은것, 질의 조건으로 잘 안쓰임, 자주 갱신하는 테이블
예제
SELECT * FROM gogek;
▶ SELECT /*+ index(gogek PK_GOGEK_ID) */ id, name
FROM gogek
WHERE name = '홍길동';
'Programming > 오라클[SQL]' 카테고리의 다른 글
오라클[sql] 조건문 IF / CASE (0) | 2022.09.24 |
---|---|
오라클[sql] PL/SQL (0) | 2022.09.24 |
오라클[sql] merge / commit / rollback (0) | 2022.09.24 |
오라클[sql] 연습문제 (0) | 2022.09.24 |
오라클[sql] 서브쿼리 / 연습문제 (0) | 2022.09.24 |
댓글