Olay OTURUMU (Transact-SQL) oluştur

kaynak olaylar, olayoturum hedefleri ve olayoturum seçeneklerini tanımlayan bir genişletilmiş olayoturum oluşturur.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları.

Sözdizimi

CREATE EVENT SESSION event_session_name
ON SERVER
{
    <event_definition> [ ,...n]
    [ <event_target_definition> [ ,...n] ]
    [ WITH ( <event_session_options> [ ,...n] ) ]
}
;
 
<event_definition>::=
{
    ADD EVENT [event_module_guid].event_package_name.event_name 
         [ ( { 
                 [ SET { event_customizable_attribute = <value> [ ,...n] } ]
                 [ ACTION ( { [event_module_guid].event_package_name.action_name [ ,...n] } ) ]
                 [ WHERE <predicate_expression> ]
        } ) ]
}
 
<predicate_expression> ::= 
{
    [ NOT ] <predicate_factor> | {( <predicate_expression> ) } 
    [ { AND | OR } [ NOT ] { <predicate_factor> | ( <predicate_expression> ) } ] 
    [ ,...n ]
}
 
<predicate_factor>::= 
{
    <predicate_leaf> | ( <predicate_expression> )
}

<predicate_leaf>::=
{
      <predicate_source_declaration> { = | < > | ! = | > | > = | < | < = } <value> 
    | [event_module_guid].event_package_name.predicate_compare_name ( <predicate_source_declaration>, <value> ) 
}

<predicate_source_declaration>::= 
{
    event_field_name | ( [event_module_guid].event_package_name.predicate_source_name )
}
 

<value>::= 
{
    number | 'string'
}

<event_target_definition>::=
{
    ADD TARGET [event_module_guid].event_package_name.target_name
        [ ( SET { target_parameter_name = <value> [ ,...n] } ) ]
}

<event_session_options>::=
{
    [    MAX_MEMORY = size [ KB | MB ] ]
    [ [,] EVENT_RETENTION_MODE = { ALLOW_SINGLE_EVENT_LOSS | ALLOW_MULTIPLE_EVENT_LOSS | NO_EVENT_LOSS } ]
    [ [,] MAX_DISPATCH_LATENCY = { seconds SECONDS | INFINITE } ]
    [ [,] MAX_EVENT_SIZE = size [ KB | MB ] ]
    [ [,] MEMORY_PARTITION_MODE = { NONE | PER_NODE | PER_CPU } ]
    [ [,] TRACK_CAUSALITY = { ON | OFF } ]
    [ [,] STARTUP_STATE = { ON | OFF } ]
}

Bağımsız değişkenler

  • event_session_name
    Kullanıcı tanımlı olay oturumaddır.event_session_name alfasayısal, en fazla 128 karakter olabilir, örnek içinde benzersiz olmalıdır SQL Serverve kurallarına uymak zorunda tanımlayıcıları.

  • Olay Ekle event_module_guid ].event_package_name.event_name
    olayoturumile ilişkilendirmek için olay yeri:

    • event_module_guidolayiçeren modülün GUID'sidir.

    • event_package_nameeylem nesne içeren paket değil.

    • event_nameolay nesnesidir.

    Olaylar görünür sys.dm_xe_objects Görünüm olarak object_type 'olay'.

  • SET { event_customizable_attribute= <value > ,...n] }
    Özelleştirilebilir özniteliklerini küme olay sağlar.Özelleştirilebilir öznitelikleri görünür sys.dm_xe_object_columns Görünüm olarak column_type 'özelleştirilebilir' and object_name = event_name.

  • ACTION ( {event_module_guid].event_package_name.action_name [ ,...n] })
    olayoturumile ilişkilendirmek için eylem yeri:

    • event_module_guidolayiçeren modülün GUID'sidir.

    • event_package_nameeylem nesne içeren paket değil.

    • action_nameeylem nesnesidir.

    Eylemler görüntülenir sys.dm_xe_objects Görünüm olarak object_type 'eylem'.

  • Burada <predicate_expression>
    Bir olay işleneceğini belirlemek için kullanılan doðrulama ifade belirtir.<Predicate_expression> olay işlenir doğrudur ve başka eylemler ve oturumiçin hedefler.<Predicate_expression> olay bırakılan oturum eylemler ve oturumiçin Hedefler işlenmeden önce false değeridir.Doðrulama deyimlerinde dize değişkenleri sınırlar 3000 karakterle sınırlıdır.

  • event_field_name
    olayadıdır.

  • [event_module_guid].event_package_name.predicate_source_name
    Genel koşul kaynak adı burada:

    • event_module_guidolayiçeren modülün GUID'sidir.

    • event_package_nameDoðrulama nesneyi içeren paket değil.

    • predicate_source_nametanımlanan sys.dm_xe_objects Nesne_türü 'pred_source' olarak görüntüle.

  • [event_module_guid].event_package_name.predicate_compare_name
    olay, ilişkilendirmek için doðrulama nesnesinin adı burada:

    • event_module_guidolayiçeren modülün GUID'sidir.

    • event_package_nameDoðrulama nesneyi içeren paket değil.

    • predicate_compare_nameGenel kaynak tanımlanır sys.dm_xe_objects Görünüm olarak object_type 'pred_compare'.

  • number
    Herhangi bir sayısal tür dahil olduğu decimal.Kullanılabilir fiziksel bellek veya 64-bit tamsayı olarak gösterilemeyecek kadar büyük bir sayı yetersizliği sınırlamalardır.

  • 'string'
    ANSI veya UNICODE dize doðrulama karşılaştırma gerektirdiği gibi.Örtülü dize türü dönüştürme için doðrulama karşılaştırma işlevlerini gerçekleştirilir.sonuçlar yanlış türde bir hata gönderiliyor.

  • Hedef Ekle event_module_guid].event_package_name.target_name
    olayoturumile ilişkilendirmek için hedef yeri:

    • event_module_guidolayiçeren modülün GUID'sidir.

    • event_package_nameeylem nesne içeren paket değil.

    • target_namehedefolur.Hedefleri görünür sys.dm_xe_objects Görünüm olarak object_type 'hedef'.

  • SET { target_parameter_name= <value > ,...n] }
    hedef parametresini ayarlar.Hedef parametreleri görünür sys.dm_xe_object_columns Görünüm olarak column_type 'özelleştirilebilir' ve object_name = hedef_adı.

    Önemli notÖnemli

    Öneririz halka arabelleği hedefkullanıyorsanız, o, küme max_memory2048 kilobayt (kb) olası veri kesilmesi korunmanıza yardımcıhedef parametresi xml çıktı.Farklı hedef türleri'ni kullanma hakkında daha fazla bilgi için bkz: SQL Server Genişletilmiş olayları hedefleri.

  • İLE ()<event_session_options > ,... n)
    olayoturumile kullanılacak seçenekleri belirtir.

  • MAX_MEMORY =size KB |MB
    oturum olay arabelleği için ayrılacak bellek miktarı üst sınırını belirtir.Varsayılan değer 4 MB'tır.sizebir tamsayı ve kilobayt (kb) veya megabayt (mb) değeri olabilir.Zaman uyumsuz hedefler için ayrılan bellek bu değerinden farklıdır.

  • EVENT_RETENTION_MODE = { ALLOW_SINGLE_EVENT_LOSS | ALLOW_MULTIPLE_EVENT_LOSS | NO_EVENT_LOSS}
    olay zarar işlemek için kullanılacak olay bekletme modu belirtir.

    • ALLOW_SINGLE_EVENT_LOSS
      olay ' % s'oturum oturumile kaybedilir.Tüm olay arabelleği dolduğunda tek olay yalnızca bırakılır.olay arabelleği dolduğunda bir tek olay kaybetmenizi sağlar için kabul edilebilir SQL Server işlenen olay akışı. veri kaybını en aza indirme sırasında performans özellikleri

    • ALLOW_MULTIPLE_EVENT_LOSS
      ' % S'oturum oturumile birden çok olay içeren tam olay arabellekleri kaybolabilir.oturum, bölümleme bellek ve olayları arabellek boyutu ayrılan bellek boyutu üzerine bağımlı kayıp olayların sayısıdır.Bu seçenek sunucu üzerindeki performans etkisini olay arabellekleri hızla doldurulur, ancak çok sayıda Olay ' % s'oturum oturumile kaybolabilir en aza indirir.

    • NO_EVENT_LOSS
      Hiçbir olay zarar verilir.Bu seçenek, tüm olayları harekete geçirilen korunacak sağlar.Bu seçeneği kullanarak bir olay arabellek alanı oluncaya kadar bekleyin olayları ateşlenmesine tüm görevler zorlar.olayoturum etkin durumdayken bu algılanabilir performans sorunlarına neden olabilir. Kullanıcı bağlantılarını arabelleğinden boşaltılması olayları beklerken stall.

  • MAX_DISPATCH_LATENCY = { seconds saniye | SONSUZ }
    Olayları bellekte olayoturum hedefleri için dağıtılan önce arabelleğe alınıp, saat belirtir. Varsayılan olarak bu değer 30 saniyeye ayarlanmıştır.

    • secondsSANİYE
      saathedeflerine arabellekleri temizlemesini başlatmadan önce beklenecek saniye cinsinden.secondsbir tamsayıdır.Düşük gecikme süresi değerini 1 saniyedir.Ancak, 0 SONSUZ gecikme süresibelirtmek için kullanılır.

    • SONSUZ
      Yalnızca arabellek dolduğunda veya olay oturum kapattığında arabellekleri hedefleri temizleme.

      Not

      MAX_DISPATCH_LATENCY = 0 saniye MAX_DISPATCH_LATENCY için eşdeğerdir = SONSUZ.

  • MAX_EVENT_SIZE =sizekb |MB
    oturum olay arabelleği için ayrılacak bellek miktarı üst sınırını belirtir.Varsayılan değer 4 megabayt (mb) ' dir.sizebir tamsayı ve kilobayt (kb) veya megabayt (mb) değeri olabilir.Zaman uyumsuz hedefler için ayrılan bellek bu değerinden farklıdır.

  • MEMORY_PARTITION_MODE = { none | PER_NODE | PER_CPU}
    olay arabellekleri oluşturulduğu konumu belirtir.

    • HİÇBİRİ
      Bir tek küme arabellek oluşturulur içinde SQL Server örnek.

    • PER_NODE
      Bir küme , arabellek oluşturulur her NUMA düğümüiçin.Daha fazla bilgi için, bkz. Tip olmayan bellek erişimi anlama.

    • PER_CPU
      Bir küme , arabellek oluşturulur her cpu için.

  • TRACK_CAUSALITY = {on | OFF }
    Causality izlenen olup olmadığını belirtir.Etkin, causality ilgili olayları birlikte ilişkili olabilir için farklı bir sunucu bağlantıları sağlar.

  • startup_state = {on | OFF }
    Bu olay oturum otomatik olarak başlattığınızda belirtir SQL Server başlar.

    Not

    Yoksa startup_state SQL Server durdurulur ve yeniden başlatılır, on, olayoturum yalnızca start =.

    • ON
      Başlangıçta olay oturum başlatılır.

    • KAPALI
      Başlangıçta olay oturum başlamadı.

Açıklamalar

Mantıksal işleçler için kullanım önceliği sırasını değil (yüksek), arkasından ve arkasından veya.

İzinler

control server izni gerektirir.

Örnekler

Aşağıdaki örnek, adlı bir olay oturum oluşturmak gösterilmiştir test_session.Bu örnek iki olay ekler ve hedefiçin olay izleme Windows kullanır.

IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='test_session')
    DROP EVENT session test_session ON SERVER;
GO
CREATE EVENT SESSION test_session
ON SERVER
    ADD EVENT sqlos.async_io_requested,
    ADD EVENT sqlserver.lock_acquired
    ADD TARGET package0.etw_classic_sync_target 
        (SET default_etw_session_logfile_path = N'C:\demo\traces\sqletw.etl' )
    WITH (MAX_MEMORY=4MB, MAX_EVENT_SIZE=4MB);
GO