오류 및 메시지
작업에 튜닝할 수 없는 이벤트가 발생하면 오류와 메시지가 생성됩니다. 이러한 오류와 메시지는 튜닝 로그에 기록되지만 튜닝 세션은 중지되지 않습니다. 오류 및 메시지는 튜닝 프로세스 이해에 도움이 되는 튜닝 세션 관련 정보를 사용자에게 제공할 수 있는 조건을 보고합니다. 사용자는 이 정보를 사용하여 이전 튜닝 세션의 피드백을 기준으로 입력 매개 변수를 조정할 수 있습니다. 이렇게 입력 매개 변수를 조정하면 데이터베이스 엔진 튜닝 관리자를 보다 효과적으로 사용할 수 있습니다.
이 피드백은 데이터베이스 튜닝에 큰 작업이 사용될 때 특히 유용합니다. 예를 들어 다음 조건 중 하나가 발생하면 오류나 메시지가 튜닝 로그에 기록됩니다.
작업에서 만든 임시 테이블이 더 이상 데이터베이스에 없습니다.
쿼리에 참조된 테이블이 튜닝용으로 선택되지 않았습니다.
이벤트를 구문 분석할 수 없습니다.
튜닝 로그 항목
dta 명령 프롬프트 유틸리티를 사용할 때 -e 인수의 값을 지정하면 데이터베이스 엔진 튜닝 관리자를 통해 튜닝 로그에 오류와 메시지를 기록할 수 있습니다. 또는 데이터베이스 엔진 튜닝 관리자 GUI(그래픽 사용자 인터페이스)의 일반 탭에서 튜닝 로그 저장을 선택할 수 있습니다. 데이터베이스 엔진 튜닝 관리자의 두 가지 사용자 인터페이스를 사용하는 방법은 방법: 데이터베이스 튜닝 및 dta 유틸리티를 참조하십시오.
dta 유틸리티의 -e 인수에 대한 파일 또는 테이블 이름을 지정하지 않으면 GUI를 사용하여 튜닝 로그 정보를 볼 수 있습니다. GUI를 사용하여 튜닝 로그를 보려면 튜닝 세션 도중이나 세션이 끝난 후 진행률 탭을 클릭합니다. 자세한 내용은 방법: 튜닝 출력 보기를 참조하십시오.
GUI의 튜닝 로그에는 다음 표에 나열된 열이 포함됩니다.
튜닝 로그 열
열 이름 |
설명 |
---|---|
CategoryID |
정의된 ID에 레코드를 매핑합니다. 오류 인스턴스마다 ID가 할당되며 ID는 한 문자로 된 접두사가 있는 세 자리 숫자입니다. 접두사를 사용하면 튜닝 로그 테이블에서 문, 제약 조건 또는 서버 수준 오류에 관련된 항목을 검색할 수 있습니다. 접두사는 다음과 같이 레코드를 분류합니다.
|
이벤트 |
이벤트 문자열입니다(해당될 경우). 이벤트와 관련이 없는 메시지도 있으므로 이 열이 비어 있을 수도 있습니다. 이벤트 문자열은 저장 프로시저 이름, 일괄 처리 등에 해당됩니다. |
문 |
데이터베이스 엔진 튜닝 관리자는 이벤트를 구문 분석하고 이 이벤트와 관련된 문을 튜닝합니다. 이 열은 사용자에게 반환된 메시지와 관련된 문(해당될 경우)을 캡처합니다. 또한 메시지와 관련이 없을 경우 이 열이 비어 있을 수도 있습니다. 서버에서 이벤트를 구문 분석할 수 없는 경우에도 이 열이 비어 있습니다. |
빈도 |
이 레코드의 발생 횟수입니다. 기본값은 1입니다. |
원인 |
문이나 이벤트를 튜닝할 수 없는 이유입니다. 서버, ODBC 또는 데이터베이스 엔진 튜닝 관리자에서 이 메시지를 생성할 수 있습니다. |
다음 표에서는 위 표의 CategoryID 열에 대한 설명에 있는 범주에 대해 반환될 수 있는 메시지를 나열합니다.
문 또는 작업 관련 오류
범주 ID |
튜닝 로그 메시지 |
---|---|
S001 |
문이 테이블을 참조하지 않습니다. |
S002 |
문이 튜닝하도록 선택되지 않은 테이블을 참조합니다. |
S003 |
문이 작은 테이블만 참조합니다. |
S004 |
문이 인덱스 힌트를 참조하거나 문에 NOEXPAND 쿼리 힌트가 있습니다. |
S005 |
로컬 컴퓨터의 하드웨어 특징으로 간주됩니다. 테스트 서버 튜닝 모드를 사용할 때 반환됩니다. 확장 저장 프로시저 xp_msver에서 오류를 반환했으므로 데이터베이스 엔진 튜닝 관리자가 원격 컴퓨터의 하드웨어 특징을 확인할 수 없습니다. 자세한 내용은 프로덕션 서버 튜닝 로드 줄이기를 참조하십시오. |
S006 |
연결된 디스크에서 사용할 수 있는 저장소가 무시됩니다. 데이터베이스 엔진 튜닝 관리자가 연결된 디스크에서 사용할 수 있는 저장소 공간에 대한 정보를 수집할 수 없는 오류가 발생했습니다. 이 경우 데이터베이스 엔진 튜닝 관리자는 사용 가능한 저장소 크기를 현재 원시 데이터 크기의 3배로 간주합니다. 여기에는 데이터베이스의 테이블에 있는 힙과 클러스터형 인덱스의 총 크기가 포함됩니다. |
S0071 |
이벤트 <string>을 튜닝용 <string>으로 바꿉니다. |
S0082 |
이벤트가 어떤 테이블도 참조하지 않습니다. |
S0092 |
이벤트가 튜닝하도록 선택되지 않은 개체를 참조합니다. |
1 데이터베이스 엔진 튜닝 관리자가 sp_cursoropen, sp_executesql, sp_prepare, sp_cursorprepare, sp_prepexec 및 sp_cursorprepexec 이벤트를 튜닝을 위해 해당 이벤트에 포함된 Transact-SQL 문자열로 바꿉니다. 오류 메시지 S007이 튜닝 로그의 원인 열에 원래 이벤트와 바뀐 이벤트를 제공합니다.
2 이 메시지들은 이벤트 수준 메시지이므로 튜닝 로그의 문 열이 비어 있게 됩니다.
제약 조건 관련 오류
범주 ID |
튜닝 로그 메시지 |
---|---|
C002 |
입력 구성에 지정된 인덱싱된 뷰에 키가 없습니다. 그러나 구성을 처리하는 동안에는 무시됩니다. |
C003 또는 C004 |
데이터베이스 엔진 튜닝 관리자는 작업 튜닝을 위해 기본 튜닝 시간 또는 사용자 지정 튜닝 시간이 설정되었는지 검색하고 다음 메시지 중 하나를 튜닝 로그에 반환합니다. dta.exe는 8시간을 가정하고 GUI는 1시간을 가정합니다. 기본 시간이 사용된 경우 메시지는 다음과 같습니다. 작업의 일부 이벤트가 분석되지 않았습니다. dta.exe는 기본 시간을 8시간으로 간주합니다. 다음 방법 중 하나를 사용하여 시간 범위를 제공하십시오. (1) 그래픽 사용자 인터페이스를 사용하는 경우 튜닝 옵션 탭 페이지에서 튜닝 시간을 제한합니다. (2) dta.exe를 사용하는 경우 -A 인수에 최대 시간을 지정합니다. (3) XML 입력 파일을 사용하는 경우 TuningOptions 아래의 TuningTimeInMin 요소에 최대 시간을 지정합니다. 사용자 지정 시간이 사용된 경우 메시지는 다음과 같습니다. 작업의 일부 이벤트가 분석되지 않았습니다. 다음 방법 중 하나를 사용하여 시간 범위를 늘리십시오. (1) 그래픽 사용자 인터페이스를 사용하는 경우 튜닝 옵션 탭 페이지에서 튜닝 시간을 제한합니다. (2) dta.exe를 사용하는 경우 -A 인수에 최대 시간을 지정합니다. (3) XML 입력 파일을 사용하는 경우 TuningOptions 아래의 TuningTimeInMin 요소에 최대 시간을 지정합니다. |
서버 관련 오류
범주 ID |
튜닝 로그 메시지 |
---|---|
E000 |
서버의 특정 메시지입니다. 이 메시지가 달라집니다. |
E001 |
테스트 서버의 특정 메시지입니다. 이 메시지가 달라집니다. |
E002 |
테스트 서버에서 데이터베이스를 복제할 수 없습니다. |