SQL Server 프로파일 러 트레이스에서보고 된 오류의 원인을 찾는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/812522

문제

프로파일 러를 사용하여 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 열이있는 예외 이벤트를 실행해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top