SQL Server 프로파일러 사용 시나리오
SQL Server Profiler를 사용하는 첫 번째 단계는 SQL Server 인스턴스를 모니터링하는 이유를 확인하는 것입니다. 이 항목에서는 SQL Server Profiler를 사용하여 추적 정보를 수집하는 일반적인 시나리오에 대해 설명합니다.
일반적인 SQL Server Profiler 사용 시나리오는 다음과 같습니다.
가장 성능이 나쁜 쿼리를 찾습니다.
예를 들어 TSQL 및 저장 프로시저 이벤트 클래스(RPC:Completed 및 SQL:BatchCompleted)에 관련된 이벤트를 캡처하는 추적을 만들 수 있습니다. 추적에 있는 모든 데이터 열을 포함해 기간 별로 그룹화하고 이벤트 조건을 지정합니다. 예를 들어 이벤트의 최소 기간을 10000마이크로초로 지정하면 추적에서 이 기간보다 짧게 실행되는 이벤트를 제거할 수 있습니다. 기간의 최소 값은 필요에 따라 높일 수 있습니다. 한 번에 하나의 데이터베이스만 모니터링하려면 데이터베이스ID 이벤트 조건에 값을 지정하십시오.
교착 상태의 원인을 식별합니다.
예를 들어 TSQL 및 Stored Procedure 이벤트 클래스(RPC:Starting 및 SQL:BatchStarting)와 Locks 이벤트 클래스(Deadlock graph, Lock:Deadlock 또는 Lock:DeadlockChain)에 관련된 이벤트를 캡처하는 추적을 만들 수 있습니다. 추적에 있는 모든 데이터 열을 포함하여 이벤트 클래스로 그룹화합니다. 한 번에 하나의 데이터베이스만 모니터링하려면 데이터베이스ID 이벤트 조건에 값을 지정하십시오. Deadlock graph 이벤트 클래스를 지정하면 SQL Server Profiler에서 해당 교착 상태를 그래픽 형식으로 표시합니다. 자세한 내용은 SQL Server 프로파일러를 사용하여 교착 상태 분석을 참조하십시오.
교착 상태에 관련된 연결을 보려면 다음 중 한 작업을 실행하십시오.
캡처한 데이터를 포함하는 추적을 열고 데이터를 ClientProcessID로 그룹화하여 교착 상태와 관련된 두 연결을 모두 확장합니다.
캡처한 데이터를 추적 파일로 저장하고 추적 파일을 두 번 열어 개별의 SQL Server Profiler 창 두 개에 파일을 표시합니다. 캡처한 데이터를 ClientProcessID로 그룹화한 후 교착 상태와 관련된 클라이언트 프로세스 ID를 확장합니다. 교착 상태에 있는 각 연결이 개별 창에 나타납니다. 창을 바둑판식으로 배열하여 교착 상태를 일으킨 이벤트를 확인할 수 있습니다. 특정 교착 상태 그래프 데이터를 파일에 저장하려면 해당 교착 상태 이벤트를 마우스 오른쪽 단추로 클릭한 다음 이벤트 데이터 추출을 선택합니다.
저장 프로시저 성능을 모니터링합니다.
예를 들어 Stored Procedure 이벤트 클래스(SP:Completed, SP:Starting, SP:StmtCompleted 및 SP:StmtStarting)와 TSQL 이벤트 클래스(SQL:BatchStarting 및 SQL:BatchCompleted)에 관련된 이벤트를 캡처하는 추적을 만들 수 있습니다. 추적에 있는 모든 필요한 데이터 열을 포함하여 ClientProcessID로 그룹화합니다. 한 번에 하나의 데이터베이스만 모니터링하려면 데이터베이스 ID 필터를 사용하여 DatabaseID 이벤트 조건에 값을 지정하십시오. 마찬가지로 한 번에 하나의 저장 프로시저만 모니터링하려면 개체 ID 필터를 사용하여 Object ID 이벤트 조건에 값을 지정하십시오.
SQL Server 작업을 감사합니다.
예를 들어 보안 관리자가 서버에 로그인하는 사용자를 항상 알아야 하는 경우 SQL Server Profiler 추적에서 서버에 로그인 및 로그아웃한 전체 사용자 기록을 제공할 수 있습니다. 여기서 확인한 정보를 법적 또는 기술적 용도로 사용할 수 있습니다.
추적을 만들고 Audit Login 이벤트를 선택합니다. 적절한 정보를 반환하려면 다음 데이터 열을 지정합니다. EventClass(기본 선택), EventSubClass, LoginSID, LoginName.
사용자당 Transact-SQL 작업을 모니터링합니다.
Sessions, ExistingConnection 및 TSQL 이벤트 클래스에 관련된 이벤트를 캡처하는 추적을 만들 수 있습니다. 추적에 있는 모든 데이터 열을 포함하지만 이벤트 조건을 지정하지는 않으며 DBUserName으로 캡처한 이벤트를 그룹화합니다.
스트레스 테스트를 위해 대표적인 이벤트 샘플을 수집합니다.
SQL Server Profiler는 벤치마크 테스트와 같은 반복적인 튜닝을 위해 미리 정의된 TSQL_Replay 템플릿을 제공합니다.
데이터베이스 엔진 튜닝 관리자를 사용하여 물리적 데이터베이스 디자인을 튜닝하기 위한 이벤트 샘플을 수집합니다.
SQL Server Profiler는 미리 정의된 튜닝 템플릿을 제공합니다. 이 템플릿은 데이터베이스 엔진 튜닝 관리자에서 작업으로 사용될 수 있도록 추적 출력에서 적절한 Transact-SQL 이벤트를 수집합니다.