Udostępnij za pośrednictwem


Rodzajowy typ zbierających śledzenia SQL

Rodzajowy śledzenia SQL typ modułu zbierającego używa śledzenia SQL do monitorowania SQL Server relacyjnej silnika.Dane śledzenia mogą pochodzić z śledzenia domyślne lub jeden lub więcej niestandardowych śladów.This collector type is registered in the core.supported_collector_types view.

Trace domyślne, sterowane przez ustawienie całego serwera, działa w sposób ciągły na serwerze i przechwytuje zdarzenia ogólnego interesu.Zdarzenia te odsetki nie są związane z wykonywaniem poszczególnych partia.Jest to śledzenia wpływ niski.Ślady niestandardowych można zbierać żadnych zdarzeń i mogą mieć wpływ niski lub wysoki, w zależności od wybranych zdarzenia i aktywności serwera w czas z systemem śledzenia.W większości przypadków śladów niestandardowe nie działają stale.

Rodzajowy śledzenia SQL typ modułu zbierającego uruchamia śledzenia po stronie serwera, który przechowuje dane w pliku lub zestaw plików.Dane śledzenia są uzyskiwane z plików śledzenia za pomocą fn_trace_gettable() funkcja systemu.Jeśli do tego skonfigurowani kolektora przetwarza dane i następnie wysyła dane do magazyn danych zarządzania.

Rodzajowy śledzenia SQL typ modułu zbierającego jest skonfigurowany do usuwania nieużywanych plików i zachować ustalona ilość miejsca dla danych śledzenia przechowywane.

Ogólny schemat wprowadzania śledzenia SQL

Rodzajowy śledzenia SQL typ modułu zbierającego używa następującego schematu dla parametrów wejściowych.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="DataCollectorType">
  <xs:element name="SqlTraceCollector">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Events">
          <xs:complexType>
            <xs:sequence>
              <xs:element minOccurs="0" maxOccurs="unbounded" name="EventType">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="Event">
                      <xs:complexType>
                        <xs:attribute name="id" type="xs:unsignedByte" use="required" />
                        <xs:attribute name="name" type="xs:string" use="required" />
                        <xs:attribute name="columnslist" type="xs:string" use="optional" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="id" type="xs:unsignedByte" use="optional" />
                  <xs:attribute name="name" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Filters">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Filter" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:attribute name="columnid" type="xs:unsignedByte" use="required" />
                  <xs:attribute name="columnname" type="xs:string" use="required" />
                  <xs:attribute name="logical_operator" type="xs:string" use="required" />
                  <xs:attribute name="comparison_operator" type="xs:string" use="required" />
                  <xs:attribute name="value" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="use_default" type="xs:boolean" />
    </xs:complexType>
  </xs:element>
</xs:schema>

Jak pokazano w schemacie, zawiera typ zbierających klucz elementów, parametry procedura składowana i specjalnej kolumny.

Najważniejsze elementy

  • Definicja śledzenia wejściowy zawiera listę zdarzeń i listę filtrów, które definiują śledzenia.

  • Zdarzenia są grupowane w ramach EventType , węzeł, który odpowiada kategorii zdarzeń w SQL Server Profiler.

  • Dla EventType węzła, ID atrybut musi odpowiadać wartości z sys.trace_category systemu widoku.name atrybut jest fakultatywne.

  • Dla Event węzła, ID atrybut musi odpowiadać wartości z sys.trace_events systemu widoku.Atrybut name jest opcjonalne.

  • Identyfikatory są używane podczas generowania skryptu rozpoczęcia śledzenia.Nazwy są używane dla potrzeb czytelności i renderowania definicji wprowadzania w interfejs użytkownika.

  • Event węzeł zawiera następujące atrybuty:

    • ID, name.Explained previously.

    • columnslist.A comma-separated list of column IDs to be selected for the event.Jeśli columnslist nie jest określony, wszystkie kolumny dla tego zdarzenie zostaną uwzględnione.

  • Filter Węzeł definiuje filtr zastosowany do śledzenia.Atrybuty mają następujące znaczenie:

    • columnid.ID of a column that the filter applies to.

    • columnname.The name of the column identified by columnid.Używany do renderowania.

    • logical_operator.An operator to be applied between multiple filters on the same column.Dozwolone są wartości i oraz lub.

    • comparison_operator.An operator to be applied between the column and the filter value.Dozwolone wartości to: EQ, NE, GT, GE, LT, LE, podobnie jak i NOTLIKE.

    • value.The value to use for comparison.Należy zauważyć, że wartość filtru i operator porównania musi odpowiadać typowi filtr zastosowany do kolumna.Na przykład, jeśli typem kolumna jest string, tylko "podobne" i "NOTLIKE" Operatorzy mogą być używane i akceptowane są tylko wartości ciąg dla wartości filtru.

Parametry procedury przechowywanej

Następujące parametry sp_trace_create procedura składowana są definiowane na podstawie zestaw kolekcja lub opcje zbierających.

  • @options.Trace is always started with the rollover option set (TRACE_FILE_ROLLOVER).

  • @tracefile.The location of trace files is determined by the CollectorTempDir variable.Nazwa plik śledzenia zostanie wygenerowany jako łączenie z: "datacollector_" + nazwa_wystąpienia + CollectionSetUid + CollectionItemId + "TRC".

  • @maxfilesize.Is always set to 5 megabytes (MB).

  • @stoptime.Not used.

  • @filecount.Set to fit the maximum temporary storage allowed per collection set (in MB).@filecount = limitu magazynowania/5.

Specjalne kolumn

Dodatkowe kolumny są dostarczane dla każdego zdarzenie, nawet jeśli nie zostały wstępnie wybrane w parametrach wejściowych dla tego zdarzenie.Te kolumny są:

  • StartTime

  • EndTime

  • EventSequence

  • SPID

Poprzedniej kolumny identyfikacji zdarzenie pochodzenia i Włącz zdarzenie korelacji.

Poniższy przykład kodu ilustruje użycie schemacie wejściowym używane przez rodzajowy śledzenia SQL typ modułu zbierającego.

<?xml version="1.0" encoding="utf-8"?>

<ns:SqlTraceCollector xmlns:ns="DataCollectorType" normalize_sql="0" normalize_plans="0" normalize_procedures="0" normalize_connections="0" 
normalize_default="1">

<Events>
<EventType id ="6" name="Performance">
<Event id="58" name="Auto Stats"/>
<Event id="165" name="Performance statistics"/>
<Event id="146" name="Showplan XML Statistics Profile"/>
</EventType>
<EventType id="13" name="TSQL">
<Event id="12" name="SQL:BatchCompleted" columnslist="1, 3, 9, 10, 13, 16, 17, 18"/>
<Event id="13" name="SQL:BatchStarting"/>
<Event id="41" name="SQL:StmtCompleted"/>
<Event id="166" name="SQL:StmtRecompile"/>
</EventType>
<EventType id="20" name="CLR">
<Event id="196" name="Assembly Load"/>
</EventType>
<EventType id="1" name="Cursors">
<Event id="53" name="CursorOpen"/>
<Event id="75" name="CursorRecompile"/>
<Event id="76" name="CursorImplicitConversion"/>
<Event id="78" name="CursorClose"/>
</EventType>
</Events>

<Filters>
<Filter columnid="13" columnname="Duration" logical_operator="AND" comparison_operator="GE" value="1000L"/>
<Filter columnid="10" columnname="ApplicationName" logical_operator="AND" comparison_operator="LIKE" value="Data Collector"/>
<Filter columnid="10" columnname="ApplicationName" logical_operator="AND" comparison_operator="EQ" value="NULL"/>
<Filter columnid="18" columnname="CPU" logical_operator="AND" comparison_operator="EQ" value="20"/>
<Filter columnid="14" columnname="StartTime" logical_operator="AND" comparison_operator="GT" value="2007-02-09 13:40:00"/>
</Filters>

</ns:SqlTraceCollector>

Przetwarzanie i wyjście

Ta wersja rodzajowy śledzenia SQL typ modułu zbierającego obsługuje ładowania danych pełnego śledzenia, który przetwarza zdarzenia przechwytywane śledzenia domyślnego serwera.

Pełnego śledzenia ładowania danych

Tego typu danych należy załadować śledzenia ładowania danych bez jakiegokolwiek przetwarzania w pojedynczej tabela, która zawiera wszystkie kolumny możliwości śledzenia.Dane z wielu śladów mogą być ładowane do tej samej tabela, co ułatwi scalania danych.Oprócz danych śledzenia snapshot_id jest dołączany do każdego wiersza, który umożliwia do identyfikowania źródło danych śledzenia i czas śledzenia.

Następujące korzyści, które są dostarczane przez ładowania danych pełnego śledzenia:

  • Istnieje prosty sposób uzyskiwania danych śledzenia z serwera bazy danych, gdzie można łatwo proszeni i dalej przetwarzane bez otwierania śledzenia w SQL Server Profiler.

  • Dane z wielu śladów można scalić i skorelowane ze sobą.

  • Nie ma bez utraty danych z oryginalnego śledzenia.Wszystko, co przechwycenia jest zachowywana.

  • Istniejące narzędzia, takie jak SQL Server Profiler, może służyć do przeglądania danych.

Schemat docelowy

Schemat obiekt docelowy jest zdefiniowana jako jedna tabela, który przechwytuje szczegóły śladów przechowywane w magazyn danych zarządzaniaoraz jedną tabelę, która służy do przechowywania wszystkich zdarzeń śledzenia z śladów.Dane śledzenia są przechowywane w następujących tabelach magazyn danych zarządzania:

  • snapshots.trace_info.This table contains information about all the traces that have been uploaded to the warehouse instance.

  • snapshots.trace_data.This table contains data captured by all the traces.Definiuje kolumna dla każdej kolumna możliwości śledzenia.Przechowywanie danych śledzenia w ten sposób umożliwia wstawienie danych w tabela w ten sam kształt co gdy pochodzi z modułów zbierających dane fn_trace_gettable() funkcja systemu.Umożliwia również być ładowane bezpośrednio do tabela SQL Server Profiler.

Aby uzyskać więcej informacji o tych tabel, zobacz Zarządzanie magazynem danych.