Aracılığıyla paylaş


OLAY SESSION (Transact-sql) oluştur

Olaylar, olay oturum hedefleri ve olay oturum seçeneklerini kaynağını tanımlayan Genişletilmiş olayları oturumu oluşturur.

Konu bağlantısı simgesi Transact-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 oturumu adıdır. event_session_name alfasayısal, en fazla 128 karakter olabilir, örneği içinde benzersiz olmalıdır SQL Serverve kuralları uymanız gerekir tanımlayıcıları.

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

    • event_module_guidetkinlik içeren modülün GUID'sidir.

    • event_package_nameEylem nesne içeren pakettir.

    • event_nameolay nesnesidir.

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

  • SET { event_customizable_attribute= <value>,...n] }
    Olay için ayarlamak özelleştirilebilir özellikleri sağlar. Özelleştirilebilir öznitelikleri görünür sys.dm_xe_object_columnsgörünüm olarak column_type'özelleştirilebilir' and object_name = event_name.

  • ACTION ( {event_module_guid].event_package_name.action_name [ ,...n] })
    Olay oturumu ile ilişkilendirmek için eylem nerede:

    • event_module_guidetkinlik içeren modülün GUID'sidir.

    • event_package_nameEylem nesne içeren pakettir.

    • action_nameEylem nesnesidir.

    Eylemler görünür sys.dm_xe_objectsgörünüm olarak object_type'eylem'.

  • Burada <predicate_expression>
    Olay işleneceğini belirlemekte kullanılan Koşul ifadesi belirtir. Eğer <predicate_expression> olayı işlenir doğru eylem ve hedefleri oturumu tarafından. Eğer <predicate_expression> olay bırakılan oturum için eylem ve hedefleri tarafından işlenen önce oturumu tarafından yanlıştır. Doğrulama deyimleri dizesi değişkenleri sınırlar 3000 karakter ile sınırlıdır.

  • event_field_name
    Koşul kaynağını tanımlayan olay alan adıdır.

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

    • event_module_guidetkinlik içeren modülün GUID'sidir.

    • event_package_nameyüklem nesne içeren pakettir.

    • predicate_source_nametanımlanan sys.dm_xe_objects görünüm olarak object_type 'görüntüleme'.

  • [event_module_guid].event_package_name.predicate_compare_name
    Olayla ilişkilendirmek yüklem nesnenin adıdır nerede:

    • event_module_guidetkinlik içeren modülün GUID'sidir.

    • event_package_nameyüklem nesne içeren pakettir.

    • predicate_compare_namebir genel kaynağı tanımlanır sys.dm_xe_objectsgö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 bir tamsayı gösterilemeyecek kadar büyük bir sayı eksikliği sınırlamalardır.

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

  • add hedef event_module_guid].event_package_name.target_name
    Olay oturumu ile ilişkilendirmek için hedef nerede:

    • event_module_guidetkinlik içeren modülün GUID'sidir.

    • event_package_nameEylem nesne içeren pakettir.

    • target_namehedeftir. Hedefleri görünür sys.dm_xe_objectsgörünüm olarak object_type'hedef'.

  • SET { target_parameter_name= <value>, ...n] }
    Bir hedef parametresini ayarlar. Hedef parametreleri görünür sys.dm_xe_object_columnsgörünüm olarak column_type'özelleştirilebilir' and object_name = target_name.

    Önemli notÖnemli

    Halka arabelleği hedef kullanıyorsanız, size ayarlamanızı öneririz max_memoryparametresi için 2048 kilobayt (kb) olası veri kesilmesi xml çıkışı önlemek için hedef. Farklı hedef türleri kullanma hakkında daha fazla bilgi için bkz: SQL Server Genişletilmiş olayları hedefleri.

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

  • MAX_MEMORY =size KB |MB
    En fazla oturum olay arabelleği için ayrılacak bellek miktarını belirtir. Varsayılan 4 MB'tır. sizetam sayı ve kilobayt (kb) veya megabayt (mb) değeri olabilir.

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

    • ALLOW_SINGLE_EVENT_LOSS
      Olay oturumu bağlantısını kaybetmiş olabilir. Olay arabellekleri dolu olduğunda tek bir olay sadece bırakılır. Olay arabellekleri dolu olduğunda tek bir olay kaybetme bırakmak için kabul edilebilir SQL Serverve işlenmiş olay akışındaki veri kaybını en aza indirirken performans karakteristikleri,.

    • ALLOW_MULTIPLE_EVENT_LOSS
      Birden çok olay içeren tam olay arabellekleri oturumdan kaybolabilir. Bellek ve olayları arabellek boyutunu bölümleme oturumu için ayrılan bellek boyutu üzerine bağımlı kayıp olayları sayısıdır. Bu seçeneği, olay arabellekleri hızla doldurulur, ancak olaylar çok sayıda oturum bağlantısını kaybetmiş olabilir sunucu üzerindeki performans etkisini en aza indirir.

    • NO_EVENT_LOSS
      Hiçbir olay kaybı verilir. Bu seçeneği, tüm olayları, yükseltilmiş korunacak sağlar. Bu seçeneği kullanarak bir olay arabellek kullanılabilir alan beklemek olayları yangın tüm görevleri zorlar. Olay oturumu etkin durumdayken bu algılanabilir performans sorunlarına neden olabilir. Kullanıcı bağlantılarını olaylar Arabelleğin temizlenip beklerken durak.

  • MAX_DISPATCH_LATENCY = { secondssaniye | Sonsuz }
    Olayları ne kadar arabelleğe alınmış süreyi, olay oturum hedefleri için dağıtılan önce bellekte belirtir. Varsayılan olarak bu değer 30 saniyeye ayarlanmıştır.

    • secondsSANİYE
      Arabellekleri hedefleri temizleme başlamadan önce beklenecek saniye cinsinden süre. secondsbir tam sayıdır. Düşük gecikme süresi değerini 1 saniyedir. Ancak, 0 sonsuz gecikmeyi belirtmek için kullanılır.

    • SONSUZ
      Yalnızca arabellekleri dolu olduğunda veya olay oturumu 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
    Olaylara izin verilen boyut üst sınırını belirtir. MAX_EVENT_SIZE yalnızca tek olaylar max_memory daha büyük izin ayarlamanız gerekir; Bunun için max_memory bir hata yükseltmek daha az ayarlama. sizetam sayı ve kilobayt (kb) veya megabayt (mb) değeri olabilir. Eğer sizebelirtilen kilobayt cinsinden en az izin verilen boyutu 64 KB'dir. MAX_EVENT_SIZE ayarlandığında, iki arabellekleri sizemax_memory yanı sıra oluşturulur. Bu olay arabelleğe alma için kullanılan toplam bellek max_memory + 2 demektir * MAX_EVENT_SIZE.

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

    • NONE
      Tek arabellekleri kümesi içinde oluşturulan SQL Serverörneği.

    • PER_NODE
      Arabellekleri kümesi için her numa düğümünde oluşturulur.

    • PER_CPU
      Arabellekleri kümesi her cpu için oluşturulur.

  • TRACK_CAUSALITY = {on | OFF }
    Nedensellik izlenir olup olmadığını belirtir. Etkinleştirilirse, nedensellik ilgili olayları birbirine korelasyon için farklı bir sunucu bağlantıları sağlar.

  • startup_state = {on | OFF }
    Bu olay oturumu otomatik olarak başladığında olup olmadığını belirtir SQL Serverbaşlar.

    [!NOT]

    Eğer startup_state = on, olay oturumu olacak sadece başlangıç, SQL Server durdurulur ve yeniden başlatılır.

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

    • OFF
      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 (en yüksek), arkasından ve arkasından ya.

İzinler

alter any event oturum izni gerektirir.

Örnekler

Aşağıdaki örnek adlı bir olay oturumu oluşturulması gösterilmiştir test_session. Bu örnek, iki olay ekler ve Windows için olay izleme hedefi 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

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

Ayrıca bkz.

Başvuru

alter olay SESSION (Transact-sql)

drop olay SESSION (Transact-sql)

sys.server_event_sessions (Transact-sql)

sys.dm_xe_objects (Transact-sql)

sys.dm_xe_object_columnsWHERE (Transact-sql)