반응형
< 인덱스 >
1. 인덱스 종류
클러스터형(clustered index)
- 순차적으로 지정, 테이블당 1개만 생성, Primary key와unique 에만 생성가능
비클러스터형(non-clustered index)
- 테이블당 여러개 생성
2. 제약조건에 따른 인덱스
Primary key설정시 자동으로 클러스터형 인덱스가 설정된다.
uniqeu설정시 자동으로 비클러스터형 인덱스가 설정된다.
인덱스는 Primary key 에 종속적이다.
테이블생성시 pk를 설정하지 않으면 인덱스가 설정되지 않는다.
pk를 삭제하면 인덱스도 함께 삭제된다.(무슨관계?)
3. 인덱스의 내부동작
1) B-tree(balanced tree) : 데이트를 분활하여 리프노드에 저장한다.
노드를 더 추가하여 데이터의 접근성을 높인다.
4. 인덱스 생성
디자인 > 필드선택 > 인덱스/키 설정 > 인덱스추가 > 열선택 > 인덱스 지정
-- 쿼리문으로 생성하기
-- 테스트용 테이블 만들기
CREATE TABLE userTbl
(
Seq INT NOT NULL IDENTITY(1,1),
userName nvarchar(30) NOT NULL,
birthYear int NOT NULL,
addr nvarchar(50) NOT NULL
)
1. 인덱스 종류
클러스터형(clustered index)
- 순차적으로 지정, 테이블당 1개만 생성, Primary key와unique 에만 생성가능
비클러스터형(non-clustered index)
- 테이블당 여러개 생성
2. 제약조건에 따른 인덱스
Primary key설정시 자동으로 클러스터형 인덱스가 설정된다.
uniqeu설정시 자동으로 비클러스터형 인덱스가 설정된다.
인덱스는 Primary key 에 종속적이다.
테이블생성시 pk를 설정하지 않으면 인덱스가 설정되지 않는다.
pk를 삭제하면 인덱스도 함께 삭제된다.(무슨관계?)
3. 인덱스의 내부동작
1) B-tree(balanced tree) : 데이트를 분활하여 리프노드에 저장한다.
노드를 더 추가하여 데이터의 접근성을 높인다.
데이터 추가시 클러스터형에서는 순차적으로 추가가 되지만
비클러스터형 에서는 비순차적으로 무작위 추가를 한다.
비클러스터형 에서는 비순차적으로 무작위 추가를 한다.
4. 인덱스 생성
디자인 > 필드선택 > 인덱스/키 설정 > 인덱스추가 > 열선택 > 인덱스 지정
-- 쿼리문으로 생성하기
-- 테스트용 테이블 만들기
CREATE TABLE userTbl
(
Seq INT NOT NULL IDENTITY(1,1),
userName nvarchar(30) NOT NULL,
birthYear int NOT NULL,
addr nvarchar(50) NOT NULL
)
-- addr필드에 비고유,비클러스터 인덱스 설정
CREATE INDEX idx_userTbl_addr
ON userTbl(addr)
-- Seq필드에 클러스터 인덱스 설정
CREATE CLUSTERED INDEX idx_userTbl_Seq
ON userTbl(Seq)
-- birthYear필드에 고유,비클러스터 인덱스 설정
CREATE UNIQUE INDEX idx_userTbl_birthYear
ON userTbl(birthYear)
-- userName,birthYear필드에 비고유,비클러스터 인덱스 설정
CREATE NONCLUSTERED INDEX
idx_userTbl_userName_birthYear
ON userTbl(userName,birthYear)
5. 인덱스의 사용
- 사용
Where 절에서 사용되는 필드(컬럼,열)를 인덱스로 사용한다.
join에 사용되는 열에는 인덱스를 사용한다.
외래키에 인덱스를 설정하는것이 좋다.
- 비사용
데이터중복 빈도가 높은 열에는 인덱스를 사용하지 않는다.
'Database' 카테고리의 다른 글
DB 스터디 문서 오픈과제 쿼리 교도소 탈출하기 (0) | 2008.11.06 |
---|---|
요구사항 명세서 실체관계분석, 속성분석 이름영문화 도메인 정의 논리적 데이터 모델링 물리적데이터모델 쇼핑몰프로젝트 용어사전 (0) | 2008.11.05 |
DB 서브쿼리 서브쿼리 서브쿼리 중요 한방쿼리 (0) | 2008.10.31 |
DB CASE 문활용 (원래있는 값을 비교해서 가져올때) (0) | 2008.10.31 |
DB UNIO 합집합 유니온 (0) | 2008.10.31 |
DB MSSQL 2005를 2000으로 설정하기 (0) | 2008.10.30 |
DB 관련 자료 요구사항명세서, 실체관계분석, 속성분석, 이름영문화, 도메인정의, 쇼핑몰프로젝트 (0) | 2008.10.28 |
DB 쇼핑몰관련 데이터베이스 설계 프로젝트 자료 (1) | 2008.10.27 |