반응형

/**********************************************************************************************
-- Title : [2k5] 인덱스 비활성화 후 재작성 및 온라인 상에서의 재작성
-- Reference : mcpworld.com
-- Key word : alter index disable rebuild sys.indexes
**********************************************************************************************/
-- 클러스터드 인덱스 비활성화한 후, 재작성
use adventureworks;
go

select * from dbo.salesorderdetail_test;
go

exec sp_helpindex 'dbo.salesorderdetail_test';
go

alter index pk_salesorderdetail_test on dbo.salesorderdetail_test
disable ;
go

select * from dbo.salesorderdetail_test;
/*
메시지 8655, 수준 16, 상태 1, 줄 1
테이블 또는 뷰 'salesorderdetail_test'의 인덱스 'pk_salesorderdetail_test'이(가) 비활성화되었으므로
 쿼리 프로세서에서 계획을 생성할 수 없습니다.
*/

select is_disabled from sys.indexes
where object_id = object_id('salesorderdetail_test');
go

alter index pk_salesorderdetail_test on dbo.salesorderdetail_test
rebuild with (online=on, fillfactor = 90);
/*
메시지 1988, 수준 16, 상태 1, 줄 1
클러스터형 인덱스 'pk_salesorderdetail_test'은(는) 비활성화되어 있으므로 온라인 상태에서 다시 작성할 수 없습니다.
*/

alter index all on dbo.salesorderdetail_test
rebuild;
go

select * from dbo.salesorderdetail_test;
go

select is_disabled from sys.indexes
where object_id = object_id('salesorderdetail_test');
-- 클러스터드 인덱스를 온라인상에서 재작성하기
-- 온라인 인덱스 작업은 enterprise edition에서만 가능
alter index pk_salesorderdetail_test on dbo.salesorderdetail_test
rebuild with (online=on, fillfactor = 90);
go

-- 넌클러스터드 인덱스를 온라인상에서 재구성하기
create index ix_productid on dbo.salesorderdetail_test (productid);
go

alter index ix_productid on dbo.salesorderdetail_test
rebuild with (online=on, fillfactor = 90);
go

-- alter index의 옵션 설정하기
if objectproperty(object_id('optiontestignoredupkey'), 'isusertable') = 1
 drop table optiontestignoredupkey;
go

create table optiontestignoredupkey (col1 int not null, col2 varchar(10));
go

create unique clustered index idx_col1
 on optiontestignoredupkey (col1);
go

alter index idx_col1 on optiontestignoredupkey
set (ignore_dup_key = on);
go

select name, ignore_dup_key, allow_page_locks
from sys.indexes where object_id=object_id('optiontestignoredupkey');
go

 

반응형

+ Recent posts