MSSQL

MSSQL2005 온라인인덱싱(online index)

스쿠터로세계일주 2011. 4. 6. 16:58

2005의 최대 축복은 온라인인덱스를 지원한다는 것이다.

 

인덱스관리는 DB관리의 매우 큰 부분을 차지한다.

 

인덱스를 어떻게 타는지에 따라 출력속도는 하늘과 땅 차이이고.

 

인덱스가 있어도 관리를 안해주고 인덱스 깨진걸 계속 참조해봐야 쓸모가 없다.

 

그렇다고 인덱스를 계속 리빌딩해주는게 쉽지가 않다. 2000의 경우에는 인덱스를 하게 되면 해당 테이블은 락이 걸리게 되기 때문이다.

 

2005도 마찬가지다. 그런데,...2005에서는 온라인 인덱스라는 기능이 있어서 새로운 세계를 만날 수 있다.

 

온라인인덱스 코드를 스케줄로 걸어놓으면 그 시간이 되면 테이블에 대한 잠금 없이 알아서 인덱스재구성을 해준다.

 

코드는 간단하다. 중요한건 2005 이상이라는 것!!!!!!!!!


ALTER INDEX ALL on 테이블명  REBUILD WITH (ONLINE = on); 

 

이런 코드를 스케줄에 모든 테이블에 대해서 해주게 되면 다음날 아침 매우 상콤한 select 구문을 만날 수 있을 것이다.

 

물론 온라인인덱스라고 아무런 부하가 없는건 아니고 실행될때 와 종료될때 잠시(몇초) 느려지는 감이 있지만 그 외에는 아무렇지 않다.

 

새벽 서버가 한가한 시간에 온라인인덱스를 싹~ 걸어놓고, 거기에 덤해서 통계 업데이트 작업도 걸어주면 더욱 좋다.

 

통계업데이트는


use  데이터베이스명
go
sp_updatestats
go

 

실행해주면 된다.

 

MSSQL을 2005 버전으로 설치했다면 반드시 실행해봐야 하는 기능!!! 온라인인덱스!!!! 우우훗!!!