programing

SQL Server Profiler - 추적을 필터링하여 한 데이터베이스의 이벤트만 표시하는 방법

mailnote 2023. 5. 1. 21:41
반응형

SQL Server Profiler - 추적을 필터링하여 한 데이터베이스의 이벤트만 표시하는 방법

SQL Server Profiler 추적을 특정 데이터베이스로 제한하려면 어떻게 해야 합니까?연결한 인스턴스의 모든 데이터베이스에 대한 이벤트를 보지 않도록 추적을 필터링하는 방법을 볼 수 없습니다.

Trace properties > Events Selection 탭 > 에서 Show all column을 선택합니다.이제 열 필터 아래에 데이터베이스 이름이 표시됩니다.좋아요 섹션의 데이터베이스 이름을 입력하면 해당 데이터베이스에 대한 추적만 표시됩니다.

SQL 2005에서는 먼저 추적에 데이터베이스 이름 열을 표시해야 합니다.가장 쉬운 방법은 해당 열이 이미 추가된 튜닝 템플릿을 선택하는 것입니다.

튜닝 템플릿을 선택했다고 가정하면 필터링할 항목:

  • 이벤트 선택 탭을 클릭합니다.
  • 열 필터 버튼을 클릭합니다.
  • 모든 열 표시 선택(오른쪽 아래)
  • 데이터베이스 이름을 선택하고 오른쪽 영역에서 좋아요 옆에 있는 더하기를 누른 후 데이터베이스 이름을 입력합니다.

저는 항상 추적 데이터에 대한 LIKE 쿼리를 수행할 수 있도록 추적도 테이블에 저장합니다.

추적 속성에서 이벤트 선택 탭으로 이동합니다.그런 다음 Show All Columns 라디오 버튼을 클릭합니다.그런 다음 Column Filters 버튼을 클릭합니다.여기에 이미지 설명 입력

이제 Database Name 속성을 보고 클릭할 수 있습니다.좋아요 상자를 확장하고 DB 이름을 삽입한 후 확인을 클릭하면 프로파일러를 실행할 수 있습니다.

여기에 이미지 설명 입력

실험을 통해 저는 이것을 관찰할 수 있었습니다.

SQL Server 2000에 있는 데이터베이스에서 SQL Profiler 2005 또는 SQL Profiler 2000을 사용하는 경우 언급된 문제는 계속되지만 SQL Server 2005 데이터베이스에서 SQL Profiler 2005를 사용하는 경우에는 완벽하게 작동합니다.

요약하면, 이 문제는 SQL Server 2000에서 널리 발생하고 SQL Server 2005에서 해결된 것으로 보입니다.

SQL Server 2000을 다룰 때 발생하는 문제에 대한 해결책은 (wearejimbo에서 설명한 바와 같이)

  1. 데이터베이스 식별아래와 같이 sysdatabases 테이블을 쿼리하여 필터링

    SELECT * 
    FROM master..sysdatabases 
    WHERE name like '%your_db_name%'   -- Remove this line to see all databases
    ORDER BY dbid
    
  2. 데이터베이스 사용SQL Profiler 2000의 새 추적 창에 있는 ID 필터(DatabaseName 대신)

추적 속성에서 일반 의 맨 위에 있는 이벤트 선택 탭을 클릭합니다.그런 다음 열 필터...클릭합니다.오른쪽 아래에그런 다음 필터링할 대상을 선택할 수 있습니다.TextData또는DatabaseName.

좋아요 노드를 확장하고 필터를 백분율로 입력합니다.% 후은징 같은 기호%MyDatabaseName%또는%TextDataToFilter%다음을 제외하고는%%필터가 작동하지 않음을 나타냅니다.

또한 값을 포함하지 않는 제외' 확인란을 선택해야 합니다. 다음과 같이 필터링할 필드를 찾을 수 없는 경우DatabaseName일반 탭으로 이동하여 템플릿을 변경합니다. 빈 템플릿은 모든 필드를 포함해야 합니다.

새 템플릿을 만들고 DB 이름을 확인합니다.추적 파일에 해당 템플릿을 사용합니다.

언급URL : https://stackoverflow.com/questions/272730/sql-server-profiler-how-to-filter-trace-to-only-display-events-from-one-databa

반응형