반응형
- /**********************************************************************************************
-- Title : [2k5] 인덱스 REBUILD 및 조각화 확인
-- Reference : hanbitbook.co.kr
-- Key word : alter index all rebuild sp_helpindex dm_db_index_physical_stats sys.indexes
**********************************************************************************************/
use adventureworks;
go
drop table usertbl;
go
create table usertbl
( userid nchar(8) not null primary key,
name nvarchar(10) ,
birthyear int ,
addr nchar(4)
);
go
insert into usertbl values(N'pjs', N'박지성', 1983, N'서울');
insert into usertbl values(N'pjy', N'박주영', 1986, N'경기');
insert into usertbl values(N'jjj', N'조재진', 1986, N'충북');
insert into usertbl values(N'lcs', N'이천수', 1983, N'인천');
insert into usertbl values(N'ajh', N'안정환', 1979, N'강원');
go
alter database adventureworks set online; -- offline되면 rebuild 명령 불가.
-- 잘못 된거 같다.
-- 인덱스 추가
create index idx_usertbl_name
on usertbl(name);
go
-- 인덱스 확인
sp_helpindex 'usertbl';
go
-- 인덱스 rebuild
alter index all on usertbl rebuild;
go
alter database adventureworks set online; --2k5의 rebuild는 online에서 가능
go
-- 인덱스 조각화 확인
select a.index_id, name, avg_fragmentation_in_percent
from sys.dm_db_index_physical_stats (db_id(), object_id('dbo.usertbl'), null, null, null) as a
inner join sys.indexes as b
on a.object_id = b.object_id
and a.index_id = b.index_id;
go
반응형