2013-06-24 4 views
0

Deltek 6.1 인터페이스에 연결된 SQL 2008 R2 데이터베이스의 인덱스를 다시 작성하는 에이전트 작업을 생성하려고합니다.SQL 인덱스 다시 작성 : 인덱스 조각화가 증가합니까?

실행 :

exec sp_msforeachtable 'DBCC DBREINDEX("?"," ",0)' 

인덱스 중 일부는 실제로 실질적으로 더 세분화 받고 있는지 알았어. 인덱스 간격 때문일 수 있습니까? 우리는 테스트 및 생산 네트워크에서 다양한 재구성 방법으로 이러한 일이 발생했습니다. 테이블은 일반적으로 크기가 크며 재구성을 실행 한 후 통계를 업데이트합니다.

답변

0

스크립트는 SQL Server의 모든 테이블 인덱스를 재 구축 :

USE DatabaseName --Enter the name of the database you want to reindex 

DECLARE @TableName varchar(255) 

DECLARE TableCursor CURSOR FOR 

SELECT table_name FROM information_schema.tables 

WHERE table_type = 'base table' 

OPEN TableCursor 

FETCH NEXT FROM TableCursor INTO @TableName 

WHILE @@FETCH_STATUS = 0 

BEGIN 

DBCC DBREINDEX(@TableName,' ',90) 

FETCH NEXT FROM TableCursor INTO @TableName 

END 

CLOSE TableCursor 

DEALLOCATE TableCursor 
+0

을 우리는 이미 쿼리로 같은 일을하고있어, 우리는 단지 기존의 FILLFACTOR를 사용하는 대신 새를 정의하고 있습니다. 우리가 가지고있는 문제는 %의 평균 단편화가 재구성/재구성 스크립트를 실행 한 후 점점 악화되고 있다는 것입니다. – fortysixty

+0

데이터베이스의 크기는 얼마입니까? 문제가있을 수있는 공간의 양을 줄이려면 여유 공간의 10 %가 정상적으로 조각 모음을 수행해야합니다. – MineScript

+0

데이터베이스의 크기는 대략 60GB이고 15.5GB의 여유 공간 – fortysixty