저는 SQL Server 2005 데이터베이스를 가지고 있습니다. 그 복사본이 전체 버전의 SQL Server에서 개발 중입니다. 또 다른 복사본은 웹 서버의 SQL Server 2005 Express에서 실행되고 있습니다.
저는 SQL 프로파일러를 사용하고 데이터베이스의 SQL Express 복사본에 대한 활동에서 튜닝 추적 로그를 저장했습니다.
데이터베이스 엔진 튜닝 관리자에 저장된 추적 로그를 사용하고 싶습니다...
Advisor를 Express 데이터베이스에 연결하려고 하면 Express가 지원되지 않는다는 메시지가 나타납니다.
Advisor를 SQL Server 데이터베이스에 연결하려고 하면 빈 결과가 나타납니다.
이를 수행할 수 있는 방법이 있습니까?
답변1
원격 프로덕션 서버(Express)에서 수집한 추적 데이터를 사용하여 로컬 개발 서버에서 동일한 데이터베이스를 조정할 수 있어야 합니다.
그러나 원격 서버에 저장된 추적 테이블을 사용하여 이를 수행할 수는 없습니다. 에 따르면데이터베이스 엔진 튜닝 관리자 사용 시 고려 사항, "데이터베이스 엔진 튜닝 관리자는 원격 서버에 있는 추적 테이블의 작업 부하를 튜닝할 수 없습니다."
하지만 추적 파일을 사용하고 있는 것 같으니 이는 문제가 되지 않습니다.
추천을 받지 못한 경우 먼저 앞서 언급한 목록을 확인하세요.MSDN 페이지:
데이터베이스 엔진 튜닝 관리자는 다음과 같은 상황에서 권장 사항을 제공하지 않을 수 있습니다.
조정 중인 테이블에 10개 미만의 데이터 페이지가 포함되어 있습니다.
권장 인덱스는 현재 물리적 데이터베이스 디자인에 비해 쿼리 성능이 충분히 향상되지 않습니다.
데이터베이스 엔진 튜닝 관리자를 실행하는 사용자는 db_owner 데이터베이스 역할 또는 sysadmin 고정 서버 역할의 구성원이 아닙니다. 작업의 쿼리는 데이터베이스 엔진 튜닝 관리자를 실행하는 사용자의 보안 컨텍스트에서 분석됩니다. 사용자는 db_owner 데이터베이스 역할의 멤버여야 합니다.
답변2
전체 인스턴스로 복원된 Express 인스턴스의 데이터베이스 복사본이 필요할 것 같습니다. Advisor는 튜닝 조언을 만들기 위해 스키마를 살펴봅니다.
답변3
당신이 해야 할 일은 DB를 테이블로 추적한 다음 추적 결과가 포함된 테이블의 데이터에 튜닝 어드바이저를 지정하는 것뿐입니다. 그렇게 하면 데이터베이스를 이동할 필요가 없다고 생각합니다.
답변4
또한 SQL 프로파일러에서 추적 파일을 편집하고 로그인 또는 데이터베이스 이름을 지정하는 모든 열을 제거할 수 있다는 사실도 발견했습니다. 그 후 Tuning Advisor가 작동했습니다.