계획 가이드 실패 이벤트 클래스
적용 대상: SQL Server
Plan Guide Unsuccessful 이벤트 클래스는 SQL Server에서 계획 지침이 포함된 쿼리 또는 일괄 처리에 대한 실행 계획을 생성할 수 없음을 나타냅니다. 대신 계획 지침을 사용하지 않고 계획을 컴파일했습니다. 다음 조건이 충족되면 이벤트가 발생합니다.
계획 가이드 정의의 일괄 처리/모듈은 실행 중인 일괄 처리와 일치합니다.
계획 가이드 정의의 쿼리는 실행 중인 쿼리와 일치합니다.
힌트를 포함하여 계획 가이드 정의의 힌트가
USE PLAN
쿼리 또는 일괄 처리에 성공적으로 적용되지 않았습니다. (즉, 컴파일된 쿼리 계획에 지정된 힌트를 적용할 수 없고 계획 지침을 사용하지 않은 채 계획이 컴파일된 경우)
계획 지침이 잘못되면 이 이벤트가 발생할 수 있습니다. sys.fn_validate_plan_guide 함수를 사용하여 쿼리나 일괄 처리에서 사용하는 계획 지침의 유효성을 검사하고 이 함수가 보고하는 오류를 수정합니다.
이 이벤트는 SQL Server Profiler 튜닝 템플릿에 포함됩니다.
참고 항목
이 이벤트 클래스는 Azure SQL Database에서 사용할 수 없습니다.
계획 가이드 성공 이벤트 클래스 데이터 열
데이터 열 이름 | 데이터 형식 | Description | 열 ID | 필터 가능 |
---|---|---|---|---|
ApplicationName | nvarchar | SQL Server 인스턴스에 대한 연결을 만든 클라이언트 애플리케이션의 이름입니다. 이 열은 표시된 프로그램 이름 대신 애플리케이션에서 전달하는 값으로 채워집니다. | 10 | 예 |
ClientProcessID | int | 호스트 컴퓨터에서 클라이언트 애플리케이션이 실행 중인 프로세스에 할당된 ID입니다. 클라이언트가 클라이언트 프로세스 ID를 제공하는 경우 이 데이터 열이 채워집니다. | 9 | 예 |
DatabaseID | int | 지정된 인스턴스에 대해 USE 데이터베이스 문이 실행되지 않은 경우 USE 데이터베이스 문 또는 기본 데이터베이스에 지정된 데이터베이스의 ID입니다. SQL Server Profiler는 ServerName 데이터 열이 추적에 캡처되고 서버를 사용할 수 있는 경우 데이터베이스의 이름을 표시합니다. DB_ID 함수를 사용하여 데이터베이스의 값을 결정합니다. | 3 | 예 |
DatabaseName | nvarchar | 사용자 문이 실행 중인 데이터베이스의 이름입니다. | 35 | 예 |
EventClass | int | 이벤트 유형 = 218 | 27 | 아니요 |
EventSequence | int | 요청 내의 특정 이벤트 시퀀스입니다. | 51 | 아니요 |
HostName | nvarchar | 클라이언트가 실행 중인 컴퓨터의 이름입니다. 클라이언트에서 호스트 이름을 제공하는 경우 이 데이터 열이 채워집니다. 호스트 이름을 확인하려면 HOST_NAME 함수를 사용합니다. | 8 | 예 |
IsSystem | int | 시스템 프로세스 또는 사용자 프로세스에서 이벤트가 발생했는지 여부를 나타냅니다. 1 = system, 0 = user. | 60 | 예 |
LoginName | nvarchar | 사용자의 로그인 이름입니다(SQL Server 보안 로그인 또는 DOMAIN\username 형식의 Microsoft Windows 로그인 자격 증명). | 11 | 예 |
LoginSid | image | 로그인한 사용자의 SID(보안 ID 번호)입니다. 이 정보는 sys.server_principals 또는 sys.sql_logins 카탈로그 뷰에서 찾을 수 있습니다. 각 SID는 서버의 각 로그인에 대해 고유합니다. | 41 | 예 |
NTDomainName | nvarchar | 사용자가 속한 Windows 도메인입니다. | 7 | 예 |
NTUserName | nvarchar | Windows 사용자 이름입니다. | 6 | 예 |
ObjectID | int | 계획 지침을 적용할 때 컴파일된 모듈의 개체 ID입니다. 계획 지침이 모듈에 적용되지 않은 경우 이 열은 NULL로 설정됩니다. | 22 | 예 |
RequestID | int | 문을 포함하는 요청의 ID입니다. | 49 | 예 |
데이터 열이 추적에서 캡처되고 서버를 사용할 수 있으면 | nvarchar | 추적 중인 SQL Server 인스턴스의 이름입니다. | 26 | 아니요 |
SessionLoginName | nvarchar | 세션을 시작한 사용자의 로그인 이름입니다. 예를 들어 Login1을 사용하여 SQL Server에 연결하고 Login2로 문을 실행하는 경우 SessionLoginName은 Login1을 표시하고 LoginName은 Login2를 표시합니다. 이 열에는 SQL Server 및 Windows 로그인이 모두 표시됩니다. | 64 | 예 |
SPID | int | 이벤트가 발생한 세션의 ID입니다. | 12 | 예 |
StartTime | 날짜/시간 | 이벤트가 시작된 시간(사용 가능한 경우)입니다. | 14 | 예 |
TextData | ntext | 계획 지침의 이름입니다. | 1 | 예 |
TransactionID | bigint | 트랜잭션의 시스템 할당 ID입니다. | 4 | 예 |
XactSequence | bigint | 현재 트랜잭션을 설명하는 토큰입니다. | 50 | 예 |
참고 항목
계획 가이드 성공적인 이벤트 클래스
확장 이벤트
sp_trace_setevent(Transact-SQL)
sys.fn_validate_plan_guide(Transact-SQL)
sp_create_plan_guide(Transact-SQL)
sp_create_plan_guide_from_handle(Transact-SQL)