확장 이벤트를 사용하여 시스템 작업 모니터링Monitor System Activity Using Extended Events

이 항목 적용 대상: 예SQL Server예Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

이 절차는 확장 이벤트를 ETW(Windows용 이벤트 추적)와 함께 사용하여 시스템 작업을 모니터링하는 방법을 설명합니다.This procedure illustrates how Extended Events can be used with Event Tracing for Windows (ETW) to monitor system activity. 또한 CREATE EVENT SESSION, ALTER EVENT SESSION 및 DROP EVENT SESSION 문을 사용하는 방법도 보여 줍니다.The procedure also shows how the CREATE EVENT SESSION, ALTER EVENT SESSION, and DROP EVENT SESSION statements are used.

이 태스크를 수행하려면 SQL Server Management StudioSQL Server Management Studio 에서 쿼리 편집기를 사용하여 다음 절차를 수행해야 합니다.Accomplishing these tasks involves using Query Editor in SQL Server Management StudioSQL Server Management Studio to carry out the following procedure. 또한 명령 프롬프트를 사용하여 ETW 명령도 실행해야 합니다.The procedure also requires using the command prompt to run ETW commands.

확장 이벤트를 사용하여 시스템 작업을 모니터링하려면To monitor system activity using Extended Events

  1. 쿼리 편집기에서 다음 문을 실행하여 이벤트 세션을 만들고 두 개의 이벤트를 추가합니다.In Query Editor, issue the following statements to create an event session and add two events. checkpoint_begin 및 checkpoint_end 이벤트는 데이터베이스 검사점이 시작될 때와 끝날 때 실행됩니다.These events, checkpoint_begin and checkpoint_end, fire at the beginning and end of a database checkpoint.

    CREATE EVENT SESSION test0  
    ON SERVER  
    ADD EVENT sqlserver.checkpoint_begin,  
    ADD EVENT sqlserver.checkpoint_end  
    WITH (MAX_DISPATCH_LATENCY = 1 SECONDS)  
    go  
    
  2. 버킷이 32개인 버킷팅 대상을 추가하여 데이터베이스 ID를 기준으로 검사점 수를 계산합니다.Add the bucketing target with 32 buckets to count the number of checkpoints based on the database ID.

    ALTER EVENT SESSION test0  
    ON SERVER  
    ADD TARGET package0.histogram  
    (  
          SET slots = 32, filtering_event_name = 'sqlserver.checkpoint_end', source_type = 0, source = 'database_id'  
    )  
    go  
    
  3. 다음 문을 실행하여 ETW 대상을 추가합니다.Issue the following statements to add the ETW target. 그러면 검사점의 소요 시간을 확인하는 데 사용할 수 있는 시작 및 끝 이벤트를 확인할 수 있습니다.This will enable you to see the begin and end events, which is used to determine how long the checkpoint takes.

    ALTER EVENT SESSION test0  
    ON SERVER  
    ADD TARGET package0.etw_classic_sync_target  
    go  
    
  4. 다음 문을 실행하여 세션 및 이벤트 수집을 시작합니다.Issue the following statements to start the session and begin event collection.

    ALTER EVENT SESSION test0  
    ON SERVER  
    STATE = start  
    go  
    
  5. 다음 문을 실행하여 세 이벤트를 실행합니다.Issue the following statements to cause three events to fire.

    USE tempdb  
          checkpoint  
    go  
    USE master  
          checkpoint  
          checkpoint  
    go  
    
  6. 다음 문을 실행하여 이벤트 수를 확인합니다.Issue the following statements to view the event counts.

    SELECT CAST(xest.target_data AS xml) Bucketizer_Target_Data_in_XML  
    FROM sys.dm_xe_session_targets xest  
    JOIN sys.dm_xe_sessions xes ON xes.address = xest.event_session_address  
    JOIN sys.server_event_sessions ses ON xes.name = ses.name  
    WHERE xest.target_name = 'histogram' AND xes.name = 'test0'  
    go  
    
  7. 명령 프롬프트에서 다음 명령을 실행하여 ETW 데이터를 확인합니다.At the command prompt, issue the following commands to view the ETW data.

    참고

    tracerpt 명령에 대한 도움말을 보려면 명령 프롬프트에서 tracerpt /?를 입력하세요.To get help for the tracerpt command, at the command prompt, enter tracerpt /?.

    logman query -ets --- List the ETW sessions. This is optional.  
    logman update XE_DEFAULT_ETW_SESSION -fd -ets --- Flush the ETW log.  
    tracerpt %temp%\xeetw.etl -o xeetw.txt --- Dump the events so they can be seen.  
    
  8. 다음 문을 실행하여 이벤트 세션을 중지하고 서버에서 제거합니다.Issue the following statements to stop the event session and remove it from the server.

    ALTER EVENT SESSION test0  
    ON SERVER  
    STATE = STOP  
    go  
    
    DROP EVENT SESSION test0  
    ON SERVER  
    go  
    

참고 항목See Also

CREATE EVENT SESSION(Transact-SQL) CREATE EVENT SESSION (Transact-SQL)
ALTER EVENT SESSION(Transact-SQL) ALTER EVENT SESSION (Transact-SQL)
DROP EVENT SESSION(Transact-SQL) DROP EVENT SESSION (Transact-SQL)
확장 이벤트 카탈로그 뷰(Transact-SQL) Extended Events Catalog Views (Transact-SQL)
확장 이벤트 동적 관리 뷰 Extended Events Dynamic Management Views
SQL Server 확장 이벤트 대상SQL Server Extended Events Targets