우리는 7 월에 서버가 마지막으로 재부팅 된 이후 누적 된 DMV 통계에 따르면 수백 개의 사용되지 않은 인덱스가있는 매우 큰 데이터베이스를 보유하고 있습니다. 우리 DBA 중 하나가 다음과 같은 경고문을 작성했지만 나에게는 이해가되지 않습니다.
- 쿼리 최적화 프로그램에서이 인덱스가 있어야하므로 인덱스를 삭제하기 전에 고유성 제약 조건을 적용하지 않는지 확인해야합니다.
- 인덱스가 생성 될 때마다 해당 인덱스와 관련된 통계도 SQL Server에서 생성됩니다. 쿼리가 인덱스를 사용하지 않지만 통계를 사용하고있을 수 있습니다. 따라서 인덱스를 삭제 한 후 특정 쿼리 성능이 실제로 나빠지는 상황이 발생할 수 있습니다. SQL Server는 통계의 사용 통계를 유지하지 않습니다. 데이터베이스에서 "통계 자동 작성"기능을 사용하도록 설정했지만 쿼리 최적화 프로그램에서 누락 된 통계를 작성하기 전에 내부적으로 어떤 매개 변수를 충족해야하는지 모르겠습니다.
# 1과 관련하여 SQL Server는 삽입 / 업데이트가 수행되기 전에 고유성을 결정하기 위해 실제로 인덱스를 탐색하는 것으로 보이므로 인덱스가 사용되지 않는 것으로 표시되지 않습니다.
# 2와 관련하여 이것이 실제로 가능합니까?
그건 그렇고, 색인이 사용되지 않는다고 말하면 검색이없고 스캔이 없다는 것을 의미합니다.