본문 바로가기

MSSQL/Performance

인덱스 재작성 에러 Server: Msg 3628, Level 16, State 1, Line 1


 
DBCC DBREINDX('테이블',90) 실행

Server: Msg 3628, Level 16, State 1, Line 1

우선 위와 같은 에러는 인덱스 구성시 인덱스 페이지를 잡고 있어서 발생하는 듯
합니다. (개인적인 생각)

MSDN 를 비롯하여 많은 자료를 찾아 보았지만 3628에 에러에 대해서는 특별한 자료는
찾을수 없었습니다. 같은 구성의 특정 서버만 발생하여 에러 발생 백업 파일을 다른 서버로
옮겨 테스트 해보았는데도 아래와 같은 문제 발생하지 않아  인덱스를 하나씩 삭제
해 가면서 어디가 문제인지 찾아 보았습니다.  혼자 내린 결론은 인덱스 구성을 바꾸자.
바꾸고 난후 에러 해결 할수 있었습니다.

환경 : MS-SQL 2000  서비스팩 4
OS   : Windwos 2003

기존 테이블 INDEX 구성 상태
A필드 BIGINT : PRIMARY KEY 제약 조건 CLUSTERED INDEX
B필드 VARCHAR(20) : UNIQUE 제약 조건 NONCLUSTERED INDEX



           [표1]  DBCC DBREINDEX 실행시 3628 에러 발생

        [표2] 테이블 테이터 이상 없는지 확인

        [표3] 기존 구성된 인덱스 별 DBREINDEX 실행 에러 발생하지 않음

      
원인 확인 
      A필드 : PRIMARY KEY 제약 조건 CLUSTERED INDEX 에서 문제 발생 확인 
    


해결 방법 
    
A필드 BIGINT : PRIMARY KEY 제약 조건 NONCLUSTERED INDEX
      B필드 VARCHAR(20) : UNIQUE 제약 조건 CLUSTERED INDEX 
기존 인덱스 구성 변경


변경된 인덱스와 기존 인덱스 간의 성능 비교