ALTER zdarzenie sesja (języka Transact-SQL)

Uruchamia lub zatrzymuje zdarzenie sesja lub zmiany zdarzenie konfiguracja sesja

Topic link iconKonwencje składni języka Transact-SQL

ALTER EVENT SESSION event_session_name
ON SERVER
{
        [ [ {  <add_drop_event> [ ,...n] }   
       | { <add_drop_event_target> [ ,...n ] } ] 
    [ WITH ( <event_session_options> [ ,...n ] ) ]
    ]
       | [ STATE = { START | STOP } ]
}

<add_drop_event>::=
{
    [ ADD EVENT <event_specifier> 
         [ ( { 
                 [ SET { event_customizable_attribute = <value> [ ,...n ] } ]
                 [ ACTION ( { [event_module_guid].event_package_name.action_name [ ,...n ] } ) ]
                 [ WHERE <predicate_expression> ]
        } ) ]
   ] 
   | DROP EVENT <event_specifier> }

<event_specifier> ::=
{
[event_module_guid].event_package_name.event_name
}

<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'
}

<add_drop_event_target>::=
{
    ADD TARGET <event_target_specifier>
        [ ( SET { target_parameter_name = <value> [ ,...n] } ) ]
    | DROP TARGET <event_target_specifier>
}

<event_target_specifier>::=
{
    [event_module_guid].event_package_name.target_name
}

<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 } ]
}

Argumenty

Termin

Definicja

event_session_name

IS_NULLABLE

STAN = START | STOP

Uruchamia lub zatrzymuje sesja zdarzenie.Ten argument jest prawidłowy tylko po zastosowaniu do obiektu Sesja zdarzenia SESSION ALTER zdarzenie.

DODAWANIE zdarzenie <zdarzenie _specifier>

Zdarzenie identyfikowane przez <event_specifier>z sesja zdarzenia.

[event_module_guid].event_package_name.event_name

Jest nazwą zdarzenie w pakiecie zdarzenie, gdzie:

  • event_module_guid Zmusza optymalizator kwerendy nie do ponownego kompilowania kwerendy ze względu na zmiany w statystykach.

  • event_package_name jest pakietem, który zawiera obiekt akcji.

  • ROZWIŃ WIDOKÓWevent_name

Zdarzenia są wyświetlane w widoku sys.dm_xe_objects jako object_type "zdarzenie".

ZESTAW { event_customizable_attribute = <wartość> ,...n] }

Określa atrybuty można dostosowywać dla zdarzenie.Można dostosować atrybuty są wyświetlane w widoku sys.dm_xe_object_columns column_type "można dostosować" i object_name = event_name.

ACTION ( { [event_module_guid].event_package_name.action_name [ ,...n] } )

To jest akcja, która zostanie skojarzona z sesją zdarzenia, gdzie:

  • event_module_guid Zmusza optymalizator kwerendy nie do ponownego kompilowania kwerendy ze względu na zmiany w statystykach.

  • event_package_name jest pakietem, który zawiera obiekt akcji.

  • action_name jest obiektem akcji.

Jeśli ta opcja nie zostanie określony, domyślnym limitem dla serwera jest 100.

GDZIE <predicate_expression>

Określa wyrażenie predykatu umożliwiające określenie, czy należy przetwarzać zdarzenie.Jeśli wynikiem wyrażenia <wyrażenie_predykatu> jest true, zdarzenie jest dalej przetwarzane przez akcje i cele sesji.Jeśli wynikiem wyrażenia <wyrażenie_predykatu> jest false, zdarzenie jest porzucane przez sesję przed przetworzeniem przez akcje i cele sesji.Wyrażenia predykatu nie mogą zawierać więcej niż 3000 znaków, co ogranicza zastosowanie argumentów ciągu.

event_field_name

To jest nazwa pola zdarzenia, które identyfikuje źródło predykatu.

.event_package_name.predicate_source_name [event_module_guid]

Nie można określić USE PLAN z instrukcji INSERT, UPDATE, korespondencji SERYJNEJ lub DELETE.

  • event_module_guid Zmusza optymalizator kwerendy nie do ponownego kompilowania kwerendy ze względu na zmiany w statystykach.

  • event_package_name jest pakietem, który zawiera obiekt predykatu.

  • predicate_source_name określone w widoku sys.dm_xe_objects object_type "pred_source"

[event_module_guid].event_package_name.predicate_compare_name

To jest nazwa obiektu predykatu, który zostanie skojarzony ze zdarzeniem, gdzie:

  • event_module_guid Zmusza optymalizator kwerendy nie do ponownego kompilowania kwerendy ze względu na zmiany w statystykach.

  • event_package_name jest pakietem, który zawiera obiekt predykatu.

  • predicate_compare_name może mieć jedną z następujących dokumentów:

USUWANIE zdarzenie <event_specifier>

Drops the event identified by <event_specifier>.<event_specifier> must be valid in the event session.

DODAWANIE miejsce docelowe <event_miejsce docelowe_specifier>

Kojarzy określone przez obiekt miejsce docelowe <event_target_specifier>z sesja zdarzenie.

[event_module_guid].event_package_name.target_name

Jest to nazwa miejsce docelowe w sesja zdarzenie, gdzie:

  • event_module_guid Zmusza optymalizator kwerendy nie do ponownego kompilowania kwerendy ze względu na zmiany w statystykach.

  • event_package_name jest pakietem, który zawiera obiekt akcji.

  • target_name akcja.Akcje są wyświetlane w widoku sys.dm_xe_objects jako object_type 'miejsce docelowe'.

ZESTAW { target_parameter_name = <wartość> ,...n] }

Wskazówki dotyczące tabela inne niż indeks i FORCESEEK są niedozwolone, jak kwerendy pamięci podręcznej wskazówek, jeśli kwerenda nie ma jeszcze klauzulę WITH Określanie wskazówkę dotyczącą tabela.Parametry miejsce docelowe są wyświetlane w widoku sys.dm_xe_object_columns column_type "można dostosować" i object_name = target_name.

Important noteImportant Note:
Wskazówki kwerendy można określić tylko w kwerendzie najwyższego poziom, nie znajduje się w podkwerend.Po określeniu jako wskazówka dotycząca kwerendy wskazówkę dotyczącą tabela można określić do wskazówkę dotyczącą kwerendy najwyższego poziom lub podkwerenda, jednak wartość określona dla SQL Server Extended Events Targets Wskazówka tabela klauzula musi odpowiadać dokładnie narażonych nazwa w kwerendzie lub podkwerendę.

MIEJSCA DOCELOWEGO UPUSZCZANIA <event_target_specifier>

Drops the target identified by <event_target_specifier>.<event_target_specifier> must be valid in the event session.

Dla wszystkich innych kwerend ad hoc firma Microsoft zaleca, określając te wskazówki tylko jako wskazówki do tabela.

Po określeniu jako wskazówka dotycząca kwerendy tabela wskazówki INDEX i FORCESEEK są prawidłowe dla następujących obiektów:

Widoki indeksowane

Typowe wyrażenie tabela (do wskazówkę dotyczącą musi być określona w polu Wybierz instrukcja zestaw wyników, którego wypełnia typowe wyrażenie tabela.)Dynamiczne zarządzanie widokamiUtraty pojedynczego zdarzenie po zapełnieniu buforów zdarzeń umożliwia przyjęcia SQL Server charakterystyki wydajności, minimalizując utraty danych w strumieniu przetworzonych zdarzeń.

Indeks i FORCESEEK wskazówki tabela może być określony jako wskazówki kwerendy dla kwerendy, która nie ma żadnych istniejących wskazówki tabela lub mogą być używane do zastąpienia istniejących wskazówki INDEX lub FORCESEEK w kwerendzie, odpowiednio.

W takim przypadek dopasowania wskazówkę należy także określić jako wskazówka dotycząca kwerendy przy użyciu wskazówka tabela w klauzula OPTION w celu zachowania semantyka kwerendy.Liczba utraconych zdarzeń zależy od rozmiaru pamięci przydzielone do sesja partycjonowanie pamięci i rozmiar zdarzenia w buforze.Patrz przykład K.

Gdy wskazówkę tabela inne niż indeks lub FORCESEEK jest określona przy użyciu wskazówka tabela w klauzuli OPTION bez dopasowania wskazówki dotyczącej kwerendy lub na odwrót; błąd 8702 powstaje (co oznacza, że klauzula opcja może spowodować semantyka kwerendę, aby zmienić) i kończy się niepowodzeniem.

Nie jest dozwolona żadna utrata zdarzeń.Ta opcja sprawia, że są zachowywane wszystkie wywoływane zdarzenia.Jeśli ta opcja jest używana, wszystkie zadania, które wyzwalają zdarzenia, muszą czekać, aż w buforze zdarzeń będzie wolne miejsce.Może to spowodować widoczne problemy z wydajnością, dopóki jest aktywna sesja zdarzenia.Połączenia użytkowników mogą być unieruchomione, aż bufor nie zostanie opróżniony ze zdarzeń.

MAX_DISPATCH_LATENCY = { seconds SEKUND | NIESKOŃCZONEJ}

Określa ilość czasu, przez który zdarzenia są buforowane w pamięci, zanim zostaną rozesłane do obiektów docelowych sesji zdarzenia.Minimalna wartość opóźnienia wynosi 1 sekundę.Można jednak użyć wartości 0, aby określić opóźnienie INFINITE.Domyślnie wartość ta wynosi 30 sekund.

Za pomocą UNION korespondencji SERYJNEJseconds

The time, in seconds, to wait before starting to flush buffers to targets.seconds is a whole number.

Za pomocą MAXDOP

Opróżnienia buforów do elementów docelowych tylko wtedy, gdy są zapełnione bufory lub po zamknięciu sesja zdarzeń.

NoteNote:
Za pomocą indeks

MAX_EVENT_SIZE = size [KB | MB]

Określa maksymalną dozwoloną wielkość zdarzeń.Parametr MAX_EVENT_SIZE musi być tak ustawiony, aby były dozwolone pojedyncze zdarzenia większe niż parametr MAX_MEMORY; ustawienie wartości mniejszej niż MAX_MEMORY spowoduje wywołanie błędu.size jest liczbą całkowitą i może być wartością wyrażoną w kilobajtach (kB) lub megabajtach (MB).Jeśli parametr size jest określony w kilobajtach, minimalna dozwolona wielkość wynosi 64 kB.Jeśli jest ustawiony parametr MAX_EVENT_SIZE, oprócz buforu o wielkości MAX_MEMORY zostaną utworzone dwa bufory o wielkości size.Oznacza, to że łączna pamięć zużywana na buforowanie zdarzeń to MAX_MEMORY + 2 * MAX_EVENT_SIZE.

MEMORY_PARTITION_MODE ={ NONE | PER_NODE | PER_CPU }

Przy użyciu wielu wskazówek tabela

BRAK

Pojedynczy zestaw buforów jest tworzona w obrębie SQL Server wystąpienie.

Aby zastąpić istniejące wskazówką tabela przy użyciu wskazówka tabelaZestaw buforów jest tworzony dla każdego węzeł NUMA.Aby uzyskać więcej informacji zobaczOpis dostępu do pamięci inne niż jednolite.
K.Procedura przechowywana ***

TRACK_CAUSALITY ={ ON | OFF }

Określa, czy jest śledzona przyczynowość.Jeśli przyczynowość jest włączona, pokrewne zdarzenia z połączeń z różnymi serwerami mogą być ze sobą korelowane.

STARTUP_STATE ={ ON | OFF }

Określa, czy uruchomienie tej sesja zdarzenie automatycznie po SQL Server zostanie uruchomiony.

NoteNote:
Jeśli STARTUP_STATE = ON, rozpoczęcia tylko zdarzenie sesja będzie, jeśli SQL Server jest zatrzymany, a następnie uruchamiane ponownie.
TerminDefinicja
DALEJTworzy sesja programu rozszerzonych zdarzenie wskazującą urządzenie źródłowe zdarzenie, tarcze sesja zdarzeń i opcje sesja zdarzeń.
WYŁĄCZANIESesja zdarzenia nie jest inicjowana podczas uruchamiania.

Remarks

ADD a DROP argumentów nie można użyć w tym samym sprawozdaniu.

Uprawnienia

Wymaga uprawnienia CONTROL SERVER.

Przykłady

W poniższym przykładzie rozpoczyna sesja zdarzenie, uzyskuje niektórych statystyk żywych sesja i następnie dodaje dwa zdarzenie do istniejącej sesja.

-- Start the event session
ALTER EVENT SESSION test_session
ON SERVER
STATE = start
GO
-- Obtain live session statistics 
SELECT * FROM sys.dm_xe_sessions
SELECT * FROM sys.dm_xe_session_events
GO

-- Add new events to the session
ALTER EVENT SESSION test_session ON SERVER
ADD EVENT sqlserver.database_transaction_begin,
ADD EVENT sqlserver.database_transaction_end
GO

Historia zmian

Microsoft Learning

to identyfikator GUID dla modułu, który zawiera zdarzenie.

Dodano ważne należy zwrócić uwagę, aby opis zestaw { target_parameter_name = <wartość>, ...n] }.