311
13
장
인덱스와 제약조건
데이트되면 영향을 받는 열의 인덱스도 수정해야 합니다. 따라서 인덱스가 많을수록 서버가 모
든 스키마를 최신 상태로 유지하기 위해 더 많은 작업을 수행해야 하므로 속도가 느려집니다.
또한 인덱스는 디스크 공간뿐만 아니라 관리자의 주의가 필요하므로, 가장 좋은 전략은 꼭 필
요할 때만 인덱스를 추가하는 것입니다. 월별 관리 루틴과 같은 특별한 목적으로 인덱스가 필
요하다면, 우선 인덱스를 추가한 다음 루틴을 실행한 뒤에 인덱스를 삭제하는 방법도 있습니
다. 데이터 웨어하우스의 경우에는 사용자가 보고서와 임시 쿼리 등을 실행하는 만큼 업무 시
간 동안에는 인덱스가 중요하지만, 업무 시간 이후 데이터가 웨어하우스에 로드될 때 문제가
되는 인덱스를 삭제하고 업무 시간 전에 다시 만드는 것이 일반적입니다.
일반적으로 인덱스가 너무 많아지거나 적어지지 않도록 해야 합니다. 필요한 인덱스 개수를 잘
모르겠다면 다음 전략을 기본으로 사용할 것을 권장합니다.
●
모든 기본 키 열에 인덱스가 만들어져 있는지 확인합니다 (기본 키 제약조건을 만들 때 대부분의 서버는
자동으로 고유 인덱스를 생성합니다). 다중 열 기본 키의 경우에는 기본 키 열의 서브셋 또는 모든 기본
키 열에서 대해 기본 키 제약조건 정의와 다른 순서로 추가 인덱스를 생성할 것을 고려할 수 있습니다.
●
외래 키 제약조건에서 참조되는 모든 열에 대해 인덱스를 작성합니다. 서버는 부모 행이 삭제될 때 자식
행이 없는지 확인해야 합니다. 열에 인덱스가