--index (색인, 전화번호부 ㄱ~ㅎ) - 조회를 빨리 하기 위한 수단(select가 빨라진다.)
--인덱스를 걸어야 하는경우 (우선순위 순서이다)
--1. 선택도(selectivity)가 높아야 한다.
--2. where절에 자주 등장하는 컬럼(혹은 join조건에 걸리는 컬럼)
--3. 최소 만건 이상의 데이터 (주문 테이블 같이 늘어날 것이 예상되는 경우에는 예외)
--4. null 값이 남발하는 컬럼
--단점 : DML 속도가 느려진다.
--풀스캔(full scan) : 인덱스 없이 데이터를 테이블 전체를 뒤져서 찾는 것
--PK, UK : 인덱스가 자동으로 생성된다. 그래서 FK도 자동으로 인덱스 효과를 누린다.(그래서 FK에서 인덱스를 만들지 않는다.)
-- c.f.) /*+ index(emp idx_test) */ : 오라클 hint 인덱스를 강제로 타게 만듬
-- 복합인덱스(composite index): 컬럼 2개 이상에 인덱스 사용
-- 선행컬럼이 중요 : (job, sal) sal만 검색할때(인덱스 x) job만 검색(인덱스 O)
SELECT * FROM USER_INDEXES; -- index의 종류를 알아보기 위해서
--만드는법
CREATE INDEX IDX_TEST
ON EMP(ENAME);
select * from emp where ename like '%T%';
오라클 데이터 저장단위, tablespace
/*
물리적 단위
1. block : 데이터를 읽고 쓰는 메모리 상의 단위
(2 / 4 / 8 / 16 / 32KB - default : 8KB)
2. extent : block이 8개
3. segment : table, index 저장되는 단위
4. tablespace : 세그먼트 집합체
5. Database : 테이블 스페이스의 집합체
6. Data Ware House : DB의 집합체
7.quota : 테이블스페이스에서 사용자에게 할당된 용량
*/
CREATE TABLESPACE JAVACTS
DATAFILE 'D:\oracle\app\oracle\oradata\XE\javacts.dbf' -- 파일지정
SIZE 100M -- 용량 지전(m혹은 k)
autoextend on;-- 공간 자동 확장 여부(파일크기가 자동으로 커진다.)
--blocksize 블럭사이즈지정(8k 기본값)
--segment space management auto -- 오라클이 세그먼트를 자동으로 관리
--flashback on -- 쓰레기통 사용유무
CREATE TABLE TWINKLE(NO NUMBER, TEXT CLOB) TABLESPACE JAVACTS;
'DB' 카테고리의 다른 글
java.sql.SQLExeption: 내부 표기로 변환할 수 없습니다. (0) | 2013.01.08 |
---|---|
부적합한 열 인덱스 (0) | 2013.01.08 |
SYSDATE(TO_CHAR) 문제 (0) | 2012.12.07 |
ORA-01858: 수치를 지정해야 할 위치에 비수치 문자가 지정되었습니다 (0) | 2012.12.07 |
Got error 134 from storage engine (0) | 2012.10.23 |