데이터베이스 엔진 튜닝 관리자 사용 시 고려 사항

데이터베이스 엔진 튜닝 관리자를 사용하기 전에 먼저 기능 및 성능이 미치는 영향을 이해해야 합니다. 다음 섹션에서는 이러한 고려 사항에 대해 설명하지만 그리 복잡하거나 어려운 문제는 아닙니다. 사용자의 특정 환경과 SQL Server의 구현에 따라 데이터베이스 엔진 튜닝 관리자를 사용할 때 고려해야 할 정확한 사항이 결정됩니다.

데이터베이스 엔진 튜닝 관리자 기능

데이터베이스 엔진 튜닝 관리자는 다음을 수행하지 않습니다.

  • 시스템 테이블에 인덱스를 권장합니다.

  • PRIMARY KEY 또는 UNIQUE 제약 조건을 강제로 실행하도록 고유한 인덱스를 추가하거나 삭제합니다.

  • 단일 사용자 데이터베이스를 튜닝합니다.

[!참고]

데이터베이스 엔진 튜닝 관리자는 인덱싱된 뷰가 권장 구성의 일부인 경우 뷰에 고유한 클러스터형 인덱스를 권장합니다.

또한 데이터베이스 엔진 튜닝 관리자에는 다음의 제한 사항이 있습니다.

  • 데이터베이스 엔진 튜닝 관리자는 데이터를 샘플링하여 통계를 수집합니다. 결과적으로 동일한 작업에 이 도구를 반복적으로 실행할 때 다른 결과가 나타날 수 있습니다.

  • 데이터베이스 엔진 튜닝 관리자는 Microsoft SQL Server 7.0 또는 이전 버전에서 데이터베이스의 인덱스를 튜닝하는 데 사용할 수 없습니다.

  • 튜닝 권장 구성의 최대 디스크 공간이 사용 가능한 공간을 초과하도록 지정하는 경우 데이터베이스 엔진 튜닝 관리자는 사용자가 지정한 값을 사용합니다. 그러나 권장 구성 스크립트를 실행하여 구현할 때 먼저 디스크 공간이 더 추가되지 않으면 해당 스크립트는 실패할 수 있습니다. 최대 디스크 공간은 dta 유틸리티의 -B 옵션으로 지정되거나 고급 튜닝 옵션 대화 상자에 값을 입력하는 방법으로 지정될 수 있습니다.

  • 보안을 위해 데이터베이스 엔진 튜닝 관리자는 원격 서버에 있는 추적 테이블에서 작업을 튜닝할 수 없습니다. 이 제한을 해결하기 위해 다음 옵션 중 하나를 선택할 수 있습니다.

    • 추적 테이블 대신 추적 파일을 사용합니다.

    • 추적 테이블을 원격 서버로 복사합니다.

  • -B 옵션 또는 고급 튜닝 옵션 대화 상자를 사용하여 튜닝 권장 구성에 맞게 최대 디스크 공간을 지정할 때처럼 제약 조건을 설정할 때 데이터베이스 엔진 튜닝 관리자는 기존의 인덱스를 삭제해야 할 수도 있습니다. 이 경우 데이터베이스 엔진 튜닝 관리자 권장 구성의 결과로 인해 예상 향상률에 미치지 못할 수 있습니다.

  • dta 유틸리티의 -A 옵션을 사용하거나 튜닝 옵션 탭에서 튜닝 시간 제한을 선택하여 튜닝 시간을 제한하도록 제약 조건을 지정할 때 데이터베이스 엔진 튜닝 관리자는 정확한 예상 향상률이 나타나도록 하고 이제까지 소비된 작업에 대한 분석 보고서를 생성하기 위해 해당 시간 제한을 초과할 수도 있습니다.

데이터베이스 엔진 튜닝 관리자는 다음 상황에서 권장을 수행할 수 없습니다.

  • 튜닝 중인 테이블에 포함된 데이터 페이지가 10페이지 미만입니다.

  • 권장 인덱스로 현재 물리적 데이터베이스 설계에 대한 쿼리 성능이 충분히 향상되지는 않습니다.

  • 데이터베이스 엔진 튜닝 관리자를 실행하는 사용자가 db_owner 데이터베이스 역할 또는 sysadmin 고정 서버 역할의 멤버가 아닙니다. 작업의 쿼리는 데이터베이스 엔진 튜닝 관리자를 실행하는 사용자의 보안 컨텍스트에서 분석됩니다. 사용자는 db_owner 데이터베이스 역할의 멤버여야 합니다.

데이터베이스 엔진 튜닝 관리자는 다음 상황에서 분할 권장을 수행할 수 없습니다.

  • xp_msver 확장 저장 프로시저는 사용할 수 없습니다. 이 확장 저장 프로시저는 튜닝 중인 데이터베이스가 상주하는 서버에서 프로세서의 수와 사용 가능한 메모리를 인출하는 데 사용됩니다. 이 확장 저장 프로시저는 SQL Server를 설치할 때 기본적으로 설정됩니다. 자세한 내용은 노출 영역 구성 이해xp_msver(Transact-SQL)을 참조하십시오.

[!참고]

데이터베이스 엔진 튜닝 관리자가 테스트 서버(xp_msver)를 튜닝할 때 확장 저장 프로시저가 활성화되어 있어야 데이터베이스 엔진 튜닝 관리자가 튜닝 중에 프로덕션 서버에서 정보를 인출할 수 있습니다. 자세한 내용은 테스트 서버 사용 시 고려 사항을 참조하십시오.

성능 고려 사항

데이터베이스 엔진 튜닝 관리자는 분석할 때 상당한 양의 프로세서와 메모리 리소스를 사용합니다. 프로덕션 서버의 속도가 느려지는 것을 피하려면 다음 전략 중 하나를 따르십시오.

  • 서버가 사용되고 있지 않을 때 데이터베이스를 튜닝합니다. 데이터베이스 엔진 튜닝 관리자는 유지 관리 태스크의 성능에 영향을 줄 수 있습니다.

  • 테스트 서버/프로덕션 서버 기능을 사용합니다. 자세한 내용은 프로덕션 서버 튜닝 로드 줄이기를 참조하십시오.

  • 데이터베이스 엔진 튜닝 관리자가 분석할 물리적 데이터베이스 설계 구조만 지정합니다. 데이터베이스 엔진 튜닝 관리자는 여러 옵션을 제공하지만 필요한 옵션만 지정합니다.

msdb 데이터베이스에 세션 정보 저장

데이터베이스 엔진 튜닝 관리자는 튜닝 세션 데이터 및 기타 정보를 msdb 데이터베이스에 저장합니다. msdb 데이터베이스를 변경하면 튜닝 세션 데이터가 손실될 수 있습니다. 이 위험을 제거하려면 msdb 데이터베이스에 적합한 백업 전략을 구현합니다.