Olay oturum (Transact-SQL) CREATE

Tanımlayan bir genişletilmiş olay oturumu oluşturur kaynak olayları, olay oturum hedefleri ve olay oturum seçenekleri.

Topic link iconTransact-SQL sözdizimi kuralları.

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
    Is the user-defined name for the event session.event_session_name is alphanumeric, can be up to 128 characters, must be unique within an instance of SQL Server, and must comply with the rules for Identifiers.

  • ADD olay event_module_guid].event_package_name.event_name
    Olay oturum ile ilişkilendirmek için olay yeri:

    • event_module_guid içeren modülü için GUID olay.

    • event_package_name olan paket, işlem nesnesi içerir.

    • event_namedurumda olay nesnesi.

    Olayları 'olay' object_type sys.dm_xe_objects görünümünde görüntülenir.

  • küme {event_customizable_attribute=<value> ,...n] }
    Olay özelleştirilebilir öznitelikleri sağlar küme.Özelleştirilebilir öznitelikleri sys.dm_xe_object_columns görünümde görünür 'özelleştirilebilir' column_type ve object_name =event_name.

  • eylem ( { event_module_guid].event_package_name.action_name [ ,...n] })
    Eylem olay oturum ile ilişkilendirmek için burada:

    • event_module_guid içeren modülü için GUID olay.

    • event_package_name olan paket, işlem nesnesi içerir.

    • action_name Eylem nesnesidir.

    Eylemleri object_type 'eylem' sys.dm_xe_objects görünümünde görüntülenir.

  • WHERE predicate_expression < >
    Olay, işleneceğini belirlemek için kullanılan koşul ifade belirler.If<predicate_expression>doğru olay işlenir, başka eylemler ve hedef oturum.If<predicate_expression>false, olay şu anda işlenen eylemler ve hedef oturum. önce oturumu tarafından iptalDoðrulama deyimleri, dize değişkenleri sınırlar 3000 karakterle sınırlıdır.

  • event_field_name
    Adı olay alan tanıtan doðrulama kaynak.

  • [event_module_guid].event_package_name.predicate_source_name
    Doðrulama genel kaynak adı burada:

    • event_module_guid içeren modülü için GUID olay.

    • event_package_name Doðrulama nesneyi içeren pakettir.

    • predicate_source_name sys.dm_xe_objects görünümü object_type 'pred_source' tanımlanır.

  • [event_module_guid].event_package_name.predicate_compare_name
    Olay ile ilişkilendirmek için doðrulama nesnenin adıdır; burada:

    • event_module_guid içeren modülü için GUID olay.

    • event_package_name Doðrulama nesneyi içeren pakettir.

    • predicate_compare_name bir genel kaynağı sys.dm_xe_objects görünümde object_type 'pred_compare' tanımlanır.

  • number
    Sayısal her türlü iş dahil olmak üzeredecimal.Kullanılabilir fiziksel belleğin veya 64-bit tamsayı olarak gösterilemeyecek kadar büyük bir sayı olmamasından sınırlamalardır.

  • 'string'
    Doðrulama karşılaştırma gerektirdiği gibi bir ANSI veya Unicode dizesi.Doðrulama karşılaştırma işlevleri için örtülü bir dize türü dönüştürme gerçekleştirilir.Hata türü yanlış sonuçlar gönderiliyor.

  • ADD hedef event_module_guid].event_package_name.target_name
    Olay oturum ile ilişkilendirmek için hedef yeri:

    • event_module_guid içeren modülü için GUID olay.

    • event_package_name olan paket, işlem nesnesi içerir.

    • target_name hedeftir.Hedef object_type 'hedef' sys.dm_xe_objects görünümünde görüntülenir.

  • küme {target_parameter_name=<value> ,...n] }
    Hedef parametresini ayarlar.Hedef parametre sys.dm_xe_object_columns görünümde görünür 'özelleştirilebilir' column_type ve object_name =Hedef adı.

    Important noteImportant Note:

    Halka arabelleği hedef kullanıyorsanız, max_memory target parametresi 2048 kilobayt (KB) XML çıktısı, olası veri kesme önlemeye yardımcı olmak için ayarlamanız önerilir.Ne zaman farklı hedef türü kullanmak için bkz: ilgili daha fazla bilgiOlayları TARGETS genişletilmiş SQL Server.

  • İLE (< event_session_options >,... n])
    Olay oturum ile birlikte kullanılacak seçenekleri belirtir.

  • MAX_MEMORY = size[KB | MB]
    En fazla oturum olay arabelleği için ayrılacak bellek miktarını belirtir.The default is 4 MB.size is a whole number and can be a kilobyte (KB) or a megabyte (MB) value.

  • EVENT_RETENTION_MODE = {ALLOW_SINGLE_EVENT_LOSS | ALLOW_MULTIPLE_EVENT_LOSS | NO_EVENT_LOSS}
    Kayıp olay işleme için olay koruma modu belirtir.

    • ALLOW_SINGLE_EVENT_LOSS
      Gelen bir olayı kaybolabilir oturum.Tek bir olay olay arabelleği dolduğunda yalnızca bırakılır.Tek bir olay olduğunda olay arabelleği tam kaybı sağlar için kabul edilebilirSQL Serverişlenen olay akışı. veri kaybı en aza indirme sırasında performans özellikleri

    • ALLOW_MULTIPLE_EVENT_LOSS
      Birden çok olay içeren tam olay arabelleği oturumdan kaybolabilir.Kayıp olay sayısı, bellek ve olayları arabellek boyutunu bölümleme oturum için ayrılan bellek boyutu üzerine bağlıdır.Olay arabelleği hızlı bir şekilde doldurulur, ancak çok sayıda olay gelen kayıp olabilir, bu seçenek sunucu performansına etkisi azaltır oturum.

    • NO_EVENT_LOSS
      Hiçbir olay zarar verilir.Bu seçenek, geçirilen tüm olayları korunacak sağlar.Bu seçeneği kullanarak bir olay arabellek kullanılabilir alan kadar olayları harekete tüm görevleri zorlar.Bu olay oturum etkin durumdayken, sıradan performans sorunlarına neden olabilir.Kullanıcı bağlantılarını olaylarını arabelleğe temizlendi beklenirken yavaşlamayı.

  • MAX_DISPATCH_LATENCY = { secondsSECONDS | değer}
    Olayları arabelleğe saat olay oturum hedefe gönderilen önce bellekte belirtir.Varsayılan olarak bu değer 30 saniyeye ayarlanmıştır.

    • secondsSECONDS
      The time, in seconds, to wait before starting to flush buffers to targets.seconds is a whole number.En düşük gecikme süresi değerini 1 saniyedir.Ancak, 0 değer gecikmeyi belirtmek için kullanılır.

    • SONSUZ
      Yalnızca arabellekleri dolu olduğunda ya da olay oturum kapattığında arabellek hedefleri temizleme.

      Not

      MAX_DISPATCH_LATENCY 0 SECONDS = MAX_DISPATCH_LATENCY için eşittir = SONSUZ.

  • MAX_EVENT_SIZE = size[KB | MB]
    Olaylar için izin verilen en büyük boyutunu belirtir.MAX_EVENT_SIZE should only be set to allow single events larger than MAX_MEMORY; setting it to less than MAX_MEMORY will raise an error.size is a whole number and can be a kilobyte (KB) or a megabyte (MB) value.Ifsizebelirtilen kilobayt cinsinden izin verilen en küçük boyut 64 KB.Zaman MAX_EVENT_SIZE küme veya olan iki arabelleksizeek olarak oluşturulur MAX_MEMORY.Yani olay arabelleğe almak için kullanılan toplam bellek olduğunu MAX_MEMORY + 2 * MAX_EVENT_SIZE.

  • MEMORY_PARTITION_MODE = {NONE | PER_NODE | PER_CPU}
    Olay arabelleği oluşturulduğu konumu belirtir.

    • Yok.
      Tek küme arabellek içinde oluşturulanSQL Serverörnek.

    • PER_NODE
      A küme arabellekleri her NUMA düğümü için oluşturulur.Daha fazla bilgi için bkz:Disk tekdüze bellek erişimi'ni anlama.

    • PER_CPU
      Arabellek kümesi her CPU için oluşturulur.

  • TRACK_CAUSALITY = {AÇIK | KAPALI}
    Causality izlenir olup olmadığını belirtir.Etkin causality ilgili olaylar birlikte ilişkili için başka bir sunucuya bağlantı sağlar.

  • STARTUP_STATE = {AÇIK | KAPALI}
    Başlangıç bu olay oturum otomatik olarak ne zaman isteyip istemediğinizi belirtirSQL Serverbaşlar.

    Not

    STARTUP_STATE SQL Server durdurulur ve yeniden başlatılır, ON, olay oturum olacak yalnızca başlangıç =.

    • AÇIK
      Olay oturum başlatma işlemi sırasında başlatılır.

    • Kapalı
      Olay oturum başlatma işlemi sırasında başlatılır.

Remarks

Mantıksal işleçlerin önceliği sırası değildir (yüksek), arkasından ve arkasından veya.

İzinler

SERVER CONTROL iznine gerek duyar.

Örnekler

Aşağıdaki örnekte gösterildiği adlı bir olay oturum oluşturmatest_session.Bu örnek, iki olay ekler ve Windows Olay İzleme'için hedef 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

Değişiklik Geçmişi

Güncelleştirilmiş içerik

MAX_DISPATCH_LATENCY bağımsız değişkeni için varsayılan değer olarak düzeltildi.

Eklenen önemli Not küme açıklamasını { target_parameter_name= <değeri >,... n]}.