반응형
  1. /**********************************************************************************************
    -- 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
반응형

+ Recent posts