SQL Server Profiler- 하나의 데이터베이스에서 이벤트 만 표시하도록 추적을 필터링하는 방법은 무엇입니까?
-
07-07-2019 - |
문제
SQL Server Profiler 추적을 특정 데이터베이스로 제한하려면 어떻게해야합니까? 연결된 인스턴스의 모든 데이터베이스에 대한 이벤트를 볼 수 있도록 추적을 필터링하는 방법을 알 수 없습니다.
해결책
추적 속성 아래> 이벤트 선택 탭> 모든 열 표시를 선택합니다. 이제 열 필터 아래에는 데이터베이스 이름이 표시됩니다. 같은 섹션의 데이터베이스 이름을 입력하면 해당 데이터베이스에 대해서만 추적이 표시됩니다.
다른 팁
SQL 2005에서는 먼저 추적에 데이터베이스 이름 열을 표시해야합니다. 가장 쉬운 일은 튜닝 템플릿을 선택하는 것입니다.이 튜닝 템플릿은 이미 열이 추가되었습니다.
튜닝 템플릿을 선택했다고 가정하고 필터링합니다.
- "이벤트 선택"탭을 클릭하십시오
- "열 필터"버튼을 클릭하십시오
- 모든 열 표시 확인 (오른쪽 아래)
- "DatabaseName"을 선택하고 오른쪽 창에서 옆에있는 플러스를 클릭하고 데이터베이스 이름을 입력하십시오.
나는 항상 추적을 테이블에 저장하므로 사실 후 추적 데이터의 쿼리를 좋아할 수 있습니다.
실험으로 나는 이것을 관찰 할 수 있었다 :
SQL Profiler 2005 또는 SQL Profiler 2000이 SQLServer 2000에있는 데이터베이스와 함께 사용될 때 - 문제가 언급 된 문제는 지속되지만 SQL Profiler 2005가 SQLServer 2005 데이터베이스와 함께 사용하면 완벽하게 작동합니다!
요약하면,이 문제는 SQLServer 2000에서 널리 퍼져 있고 SQLSERVER 2005에서 정류 된 것으로 보인다.
SQLServer 2000을 다룰 때의 문제에 대한 해결책은 (Wearejimbo에 의해 설명 된 바와 같이)
sysdatabases 테이블을 아래와 같이 쿼리하여 필터링하려는 데이터베이스의 데이터베이스를 식별하십시오.
SELECT * FROM master..sysdatabases WHERE name like '%your_db_name%' -- Remove this line to see all databases ORDER BY dbid
SQL Profiler 2000의 새로운 트레이스 창에서 데이터베이스 필터 (데이터 발명 대신)를 사용하십시오.
추적 속성에서 클릭하십시오 이벤트 선택 옆 상단에 탭 일반적인. 그런 다음 클릭하십시오 열 필터 ... 오른쪽 하단에. 그런 다음 필터를 선택할 수 있습니다. TextData
또는 DatabaseName
.
확장 처럼 노드 및 백분율로 필터를 입력하십시오 %
같은 표지판 %MyDatabaseName%
또는 %TextDataToFilter%
. 없이 %%
필터가 작동하지 않습니다.
또한 확인란을 확인하십시오 값을 포함하지 않는 행 제외 ' 필터를 찾을 수없는 경우 필터를 찾으려고합니다. DatabaseName
가십시오 일반적인 탭과 변경 주형, 빈 공간에는 모든 필드가 포함되어야합니다.
새 템플릿을 만들고 dbname을 확인하십시오. 트레이스 파일에 해당 템플릿을 사용하십시오.