- nonclustered index
* 책의 인덱스(색인)
* 250개까지 가능
-- clustered index
* 영어사전
* 색인 + 데이타
* 테이블당 하나만 생성
ex)
100 페이지, 단어 60개를 찾을때
indexx(5 페이지)* 60 = 300 페이지 : indexed scan
100 페이지 전체 : full scan
-- covered index
* index 안에 이미 찾고자하는 데이타가 있음
* rid lookup 이 없음
-- unique index
* clusterd index 에 유일한 값이고, 사이즈를 줄이기 위해
-- nested loop
* key index, smail
-- merge
* key index, medium
-- hash join
* no index, large
* cpu 사용량 up, temp db 많아짐
=================================================================
예제)
set statistics io on; set statistics time on
use test2;
drop table tbl
create table tbl (col1 int, col2 int, col3 int);
drop index nx_tbl1 on tbl
set nocount on
declare @i int
set @i = 0
while @i < 10000 begin
insert into tbl values (@i, @i / 10, @i % 25)
set @i = @i + 1
end
create index nx_tbl1 on tbl (col1, col2)
select col2 from tbl where col1 = 1
select * from tbl where col1 = 1
select col2 from tbl where col2 = 1 and col1 = 1
set statistics io on; set statistics time on
set statistics io off; set statistics time off
-- nonclusted index
create index nx_tbl1 on tbl(col1)
select * from tbl with(index(0))
where col1 = 100
-- clusted index
create clustered index cx_tbl1 on tbl(col1)
create index nx_tbl2 on tbl(col2)
select * from tbl where col1 = 1;
select col1 from tbl where col2 = 0;
-- every nx include cx's key
update tbl set col1 = 1
where col2 = 1
-- clustered index must exists
select object_name(id), * from sysindexes
where indid = 1
'Engineering > DB' 카테고리의 다른 글
MSSQL 2005 관리자 강좌_8일차 (0) | 2010.12.09 |
---|---|
MSSQL 2005 관리자 강좌_7일차 (0) | 2010.12.08 |
MSSQL 2005 관리자 강좌_5일차 (0) | 2010.12.02 |
MSSQL 2005 관리자 강좌_4일차 (0) | 2010.12.02 |
MSSQL 2005 관리자 강좌_3일차 (0) | 2010.12.02 |