SQL Server 프로파일 러 트레이스에서보고 된 오류의 원인을 찾는 방법은 무엇입니까?
-
03-07-2019 - |
문제
프로파일 러를 사용하여 SQL Server 2005에서 흔적을 실행했으며보고 된 오류의 원인을 찾아야합니다.
"빈"템플릿을 사용하고 다음 이벤트의 모든 열을 선택했습니다.
- 예외
- 교환 유출 이벤트
- 실행 경고
- 해시 경고
- 누락 된 열 통계
- 결합 된 PRECTICE
"TextData"열에서 이러한 오류가 여러 개 발견되었습니다.
- 오류 : 156, 심각도 : 16, 상태 : 0
- 오류 : 208, 심각도 : 16, 상태 : 0
오류 (잘못된 구문, 유효하지 않은 개체 이름)를 찾았지만 저장된 절차 나 쿼리가 어떤 원인을 유발하는지 어떻게 알 수 있습니까?
해결책
208 오류에 대해 걱정하지 마십시오. 208은 "객체를 찾을 수 없습니다"입니다. Profiler는 'Deferred Name Resolution'이라는 이유로이를 선택합니다.
다음 절차를 수행하십시오.
CREATE PROCEDURE Demo AS
CREATE TABLE #Temp (ID int)
INSERT INTO #Temp VALUES (1)
SELECT ID FROM #Temp
GO
그 Proc은 오류없이 잘 실행되지만 프로파일 러 트레이스가 실행중인 경우 오류 208 인스턴스 또는 두 개의 인스턴스가 표시됩니다. Proc가 시작될 때 테이블 #temp가 존재하지 않기 때문입니다. 구문 분석되고 묶여 있습니다. 기본 물체에 바인딩하는 과정은 실패합니다.
생성 테이블이 실행되면 다른 문장이 다시 컴파일되어 올바른 테이블에 바인딩되어 오류없이 실행됩니다.
연기 된 해상도 오류가 프로파일 러에 있다는 것을 알 수있는 유일한 곳은 있습니다.
다른 팁
SQL 2005에서는 할 수 없습니다. SQL의 프로파일러 추적 : STMTSTARTING, SQL : STMTCTOMPLETED, 사용자 오류 메시지 및 텍스트, 트랜잭션, 이벤트 시퀀스 및 OTEHR 열이있는 예외 이벤트를 실행해야합니다.
제휴하지 않습니다 StackOverflow