2011-03-04 1 views
5

쉽게 달성 할 수있는 목표를 가지고 있지만 아직 좋은 해결책을 찾지 못했습니다. Google은 그것에 대한 불만을 표시하지 않고 잘못된 장소에서 해결책을 찾고 있거나 잘못된 방법으로 도구를 사용하려고하기를 바랄뿐입니다.SQL 서버에서만 잘못된 쿼리 로깅

아니면 나에게 너무 늦었을 수도 있습니다. 분명히 생각하는 :) 그러나 이것은 당신이 나를 도울 수있는 곳입니다.

SQL Server의 특정 인스턴스에서 실행 된 잘못된 쿼리 만 기록 할 수 있어야합니다. 나는 SQL Profiler를 사용하여 시간에 아무 일도 할 수 없다고 생각했지만, 그 쿼리 만 로깅 할 수있는 설정 조합을 찾지 못했으며, 오류 (대부분 구문 분석 오류) + 오류 세부 정보가 반환되었습니다. .

초당 100 초씩 실행되는 SQL Server를 상상해보십시오. 매일 구문 분석 오류로 인해 1 ~ 2 개의 부적절한 형식의 쿼리 만 생성됩니다. 시스템에있는 모든 쿼리에 대해 매우 비싼 프로파일을 실행하지 않고 하루에 1-2 개의 쿼리를 볼 수 있어야하며 매일 쿼리를 수행해야합니다.

그럴 수 있습니까?

+0

어떤 SQL Server 버전을 사용하고 있습니까? 확장 이벤트에는 훨씬 더 유연한 필터링 아키텍처가 있습니다. –

+0

이 특정 인스턴스는 SQL Server 2005를 기반으로합니다. –

답변

10

Exception Event Class, SQL:BatchCompleted Event ClassRPC:Completed Event Class에 대한 추적을 설정하십시오. 0과 같지 않은 Error에 대한 필터를 추가하십시오. 추적을 시작하십시오. 끝난.

+0

올바른 솔루션을 찾는 것이 너무 늦었다는 것을 알고있었습니다 ... 감사합니다. 이것은 좋은 출발이었고, 약간의 조정 후에, 나는 내가 필요한 것을 가지고 있습니다. 매우 감사. –

+0

내가 이것을 시도했지만 예외가 발생했지만 내 추적에서 'SQL : BatchCompleted'또는 'RPC : Completed'중 아무 것도 없습니까? – leeand00

+0

[사용자 오류 메시지] (https://msdn.microsoft.com/en-us/library/ms190953.aspx)를 추가하는 것이 좋습니다 (오류에 대한 자세한 설명 참조). '오류'0, 5701 및 5703을 필터링합니다 (마지막 두 코드는 중요하지 않음) –