2012-03-29 2 views

답변

1

기존 인덱스에 열을 추가 할 수는 없지만 인덱스를 삭제하고 추가 열을 사용하여 인덱스를 다시 만들 수 있습니다.

온라인으로 할 수는 있지만 테이블이 클 경우 시간이 많이 걸릴 수 있습니다.

+0

어떻게 색인을 삭제하고 온라인으로 만들 수 있습니까? –

+0

@SriramSubramanian @SriramSubramanian SQL Server Enterprise Edition (2008 및 2008 R2 - 2005 년은 확실하지 않음)은 인덱스를 온라인으로 재구성 할 수 있지만 클러스터 된 인덱스가 온라인 인덱스를 다시 작성하는 방법을 기억하지 못합니다. – jlnorsworthy

+1

클러스터 된 인덱스를 다시 작성하면 비 클러스터형 인덱스도 다시 생성됩니다. 다시 생성 할 때 – datagod

2

온라인 작업으로 클러스터 된 인덱스의 정의 (예 : 키에 새 열 추가)를 변경할 수 있습니다. 나는 검증 인스턴스가 없지만, 구문은 다음과 같은 것입니다 :

create clustered index [indexname] on [table]([column], [column], [column], ...) 
with (drop_existing =on, online = on); 

작업은 (표 읽기, 삽입, 업데이트에 대한 개방 및 삭제) 완전히 온라인 상태입니다. Enterprise Edition 인스턴스가 필요합니다 (EE 만 온라인 인덱스 빌드 조작을 지원하므로) 테이블에 LOB 컬럼 (적어도 SQL Server 2012 it cannot까지)이있을 수 없습니다.

작업은 리소스가 많은 테이블의 전체 재 구축이며 중요한 로그를 생성합니다.

+0

키의 일부로 클러스터형 인덱스를 사용하기 때문에 쿼리가 테이블 스캔을 수행하거나 새 테이블이 만들어 질 때까지 오래된 테이블을 사용합니다. 그 후에 늙은 사람? –

+0

[온라인 작업 방법] (http://msdn.microsoft.com/en-us/library/ms191261.aspx) –

관련 문제