본문 바로가기

Engineering/DB

MSSQL 2005 관리자 강좌_6일차

728x90

- 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