Sorgu Düzenleyicisi kullanılarak bir Genişletilmiş olayları oturumu oluşturma

Sorgu Düzenleyicisi'ni kullanarak Genişletilmiş olayları oturumu oluşturabilir veya nesne Explorer'da oturum oluşturabilirsiniz. Nesne Explorer'da Genişletilmiş olayları oluşturmak, değiştirmek ve olay oturum verilerini görüntülemek için kullanabileceğiniz iki kullanıcı arabirimleri sağlar — Olay oturumu oluşturma işleminde size yol gösteren bir sihirbaz ve daha gelişmiş yapılandırma seçenekleri sağlayan yeni bir oturum UI. Genişletilmiş olayları oturumlar aşağıdaki gibi sorunları gidermek sağlayan SQL Server izleme teşhis oluşturabilirsiniz:

  • En pahalı sorguları Bul

  • Mandal çakışması nedenlerini bulmak

  • Diğer sorguları engelleyen sorgu bulun

  • Tarafından sorgu recompilation neden aşırı cpu kullanımı ile ilgili sorunları giderme

  • Kilitlenme sorunlarını giderme

Yeni oturum Sihirbazı'nı kullanarak Genişletilmiş olayları oturumu oluşturma hakkında daha fazla bilgi için bkz: Sihirbaz (Object Explorer) kullanılarak bir Genişletilmiş olayları oturumu oluşturma. Yeni oturum kullanıcı arabirimini kullanarak Genişletilmiş olayları oturumu oluşturma hakkında daha fazla bilgi için bkz: Yeni oturum iletişim kutusu kullanılarak bir Genişletilmiş olayları oturumu oluşturma.

İzinler

Genişletilmiş olayları oturumu oluşturmak için alter any event oturum izni olmalıdır.

Sorgu Düzenleyicisi'ni kullanarak Genişletilmiş olayları oturumu oluşturma

Genişletilmiş olayları oturumu oluşturmak için

  1. Aşağıdaki yordamı kullanarak sorgu Düzenleyicisi'nde Genişletilmiş olayları oturumu oluşturmak gösterilmiştir SQL Server Management Studio.

    Oturumda kullanmak istediğiniz olayları belirler. Anahtar kelime ve Kanal ile birlikte kullanılabilir tüm olayları görmek için aşağıdaki sorgu kullanın:

    [!NOT]

    Anahtar kelimeler ve kanallar hakkında daha fazla bilgi için bkz: SQL Server Genişletilmiş olayları paketleri.

    SELECT p.name, c.event, k.keyword, c.channel, c.description FROM
       (
       SELECT event_package = o.package_guid, o.description, 
       event=c.object_name, channel = v.map_value
       FROM sys.dm_xe_objects o
       LEFT JOIN sys.dm_xe_object_columns c ON o.name = c.object_name
       INNER JOIN sys.dm_xe_map_values v ON c.type_name = v.name 
       AND c.column_value = cast(v.map_key AS nvarchar)
       WHERE object_type = 'event' AND (c.name = 'CHANNEL' or c.name IS NULL)
       ) c LEFT JOIN 
       (
       SELECT event_package = c.object_package_guid, event = c.object_name, 
       keyword = v.map_value
       FROM sys.dm_xe_object_columns c INNER JOIN sys.dm_xe_map_values v 
       ON c.type_name = v.name AND c.column_value = v.map_key 
       AND c.type_package_guid = v.object_package_guid
       INNER JOIN sys.dm_xe_objects o ON o.name = c.object_name 
       AND o.package_guid = c.object_package_guid
       WHERE object_type = 'event' AND c.name = 'KEYWORD' 
       ) k
       ON
       k.event_package = c.event_package AND (k.event=c.event or k.event IS NULL)
       INNER JOIN sys.dm_xe_packages p ON p.guid = c.event_package
    ORDER BY keyword desc, channel, event
    
  2. Yeni bir sorgu penceresi içinde bir olay oturumu oluşturmak için aşağıdaki deyimleri eklemek yerine session_namekullanmak istediğiniz oturumun adı:

    Önemli notÖnemli

    2-6, Bu yordamın adımlarını olay oturum tanımı bir bölümü açıklanmaktadır. Çalıştırmadan önce bir tek sorgu penceresi ifadeleri eklersiniz. Tam örnek için bu konuda örnek bölümüne bakın.

    CREATE EVENT SESSION session_name 
    ON SERVER
    
  3. Formatında izlemek istediğiniz olay ekleme package_name.event_name. Her olay için aşağıdakine benzer bir satır ekleyin:

    ADD EVENT package_name.event_name
    

    Örneğin:

    ADD EVENT sqlserver.file_read_completed,
    ADD EVENT sqlserver.file_write_completed
    
  4. (İsteğe bağlı) Olay ekledikten sonra eylemler ekleyebilirsiniz. Yüklemler de ekleyebilirsiniz. Yüklemler, olay bilgilerini hedef tarafından tüketilen zaman ölçütünü oluşturmak için kullanılır. Eylemler eylem yan tümcesini kullanarak eklenir ve yüklemler bir where yan tümcesi kullanılarak eklenir. Örneğin, bir eylem ve yüklem eklemek için nereye Transact-SQLmetin için ele geçirdi sqlserver.file_read_completedDosya kimliği eşit olduğu 1, olay, şu ifade yer alıyor:

    ADD EVENT sqlserver.file_read_completed
       (ACTION (sqlserver.sql_text)
       WHERE file_id = 1),
    
    • Hangi eylemleri kullanılabilir görüntülemek için aşağıdaki sorguyu kullanabilirsiniz:

      SELECT p.name AS 'package_name', xo.name AS 'action_name', xo.description, xo.object_type
      FROM sys.dm_xe_objects AS xo
      JOIN sys.dm_xe_packages AS p
         ON xo.package_guid = p.guid
      WHERE xo.object_type = 'action'
      AND (xo.capabilities & 1 = 0 
      OR xo.capabilities IS NULL)
      ORDER BY p.name, xo.name
      
    • Hangi doğrulamaları için bir olay kullanılabilir görüntülemek için aşağıdaki kullanın sorgulamak, değiştirmek event_nameyüklemi eklemek istediğiniz olay adı:

      SELECT *
      FROM sys.dm_xe_object_columns
      WHERE object_name = 'event_name'
      AND column_type = 'data'
      

      Örneğin:

      SELECT * 
      FROM sys.dm_xe_object_columns 
      WHERE object_name = 'file_read_completed'
      AND column_type = 'data'
      

      Dikkat edin de genel koşul kaynakları ekleyebilirsiniz. Küresel bir koşul kaynak herhangi bir koşul ifadesi kullanılabilir. Hangi global doğrulama kaynakları kullanılabilir görüntülemek için aşağıdaki sorgu kullanın:

      SELECT p.name AS package_name, xo.name AS predicate_name
         , xo.description, xo.object_type
      FROM sys.dm_xe_objects AS xo
      JOIN sys.dm_xe_packages AS p
         ON xo.package_guid = p.guid
      WHERE xo.object_type = 'pred_source'
      ORDER BY p.name, xo.name
      

      Örneğin, verileri yalnızca bir olay için olay ilk beş kez toplanan belirtmek için aşağıdaki koşul ifadesi kullanabilirsiniz.

      WHERE package0.counter <= 5
      
  5. Olay verileri nerede işlenmiş ve tüketilen istenen hedef ekleyin. Aşağıdaki biçimi kullanın:

    ADD TARGET package_name.target_name
    

    Aşağıdaki örnek, zaman uyumsuz dosya hedef ekler:

    ADD TARGET package0.asynchronous_file_target
       (SET filename = 'c:\temp\xelog.xel', metadatafile = 'c:\temp\xelog.xem')
    

    Kullanılabilir hedeflerin listesini görüntülemek için aşağıdaki sorguyu kullanabilirsiniz:

    SELECT p.name AS 'package_name', xo.name AS 'target_name'
       , xo.description, xo.object_type 
    FROM sys.dm_xe_objects AS xo
    JOIN sys.dm_xe_packages AS p
       ON xo.package_guid = p.guid
    WHERE xo.object_type = 'target'
    AND (xo.capabilities & 1 = 0
    OR xo.capabilities IS NULL)
    ORDER BY p.name, xo.name
    

    [!NOT]

    Farklı hedef türleri hakkında daha fazla bilgi için bkz: SQL Server Genişletilmiş olayları hedefleri.

  6. Gözden geçirin ve ek yapılandırma seçenekleri ekleyin. Örneğin, sen-ebilmek configure seçenekleri olay bekletme modu, olayları bellekte ne kadar arabelleğe alınmış veya olay oturumu otomatik olarak başlaması gerekir ne zaman SQL Serverbaşlar. Seçenekler konusunda açıklanan alter olay SESSION (Transact-sql). Bu seçenek belirtilmezse, varsayılan değerler atanır unutmayın.

  7. Oturumu başlatmak. Başlatma veya durdurma bir oturum hakkında daha fazla bilgi için bkz: How to: Start or Stop an Extended Events Session (Transact-SQL).

    [!NOT]

    Oturumunun sonuçlarını görüntüleme hakkında daha fazla bilgi için kullandığınız hedef türüne karşılık gelen konusuna SQL Server Genişletilmiş olayları hedefleridüğümünde çevrimiçi kitaplar.

Aşağıdaki örnek, aşağıdaki bilgileri yakalar IOActivity adlı genişletilmiş olayları oturumu oluşturur:

  • Olay verileri ilişkili dahil tamamlanan dosya okuma Transact-SQLdosyasını okur dosya kimliği 1'e eşit olduğu.

  • Olay verileri tamamlanan dosya için yazıyor.

  • Olay verileri ne zaman veri günlük önbellekten fiziksel günlük dosyasına yazılır.

Oturum çıkış dosyası hedefe gönderir.

CREATE EVENT SESSION IOActivity
ON SERVER

ADD EVENT sqlserver.file_read_completed
   (
   ACTION (sqlserver.sql_text)
   WHERE file_id = 1),
ADD EVENT sqlserver.file_write_completed,
ADD EVENT sqlserver.databases_log_flush

ADD TARGET package0.asynchronous_file_target 
   (SET filename = 'c:\temp\xelog.xel', metadatafile = 'c:\temp\xelog.xem')

Ayrıca bkz.

Başvuru

OLAY SESSION (Transact-sql) oluştur

Kavramlar

SQL Server Genişletilmiş olayları hedefleri

SQL Server Genişletilmiş olayları paketleri