Udostępnij za pośrednictwem


Hash Warning Event Class

Klasa zdarzenie ostrzeżeń mieszania można używać do monitorowania, kiedy rekursji mieszania lub zaprzestanie mieszania (hash ratowanie) wystąpił podczas operacji mieszania.

Rekursja mieszania występuje podczas kompilacji dane wejściowe nie dopasowanie w dostępnej pamięci, czego wynikiem podziału danych wejściowych na wiele partycji, które są przetwarzane niezależnie.Jeśli dowolne z tych partycji nadal nie zmieściło się w pamięci, jest dzielony na subpartitions, które również są przetwarzane niezależnie.Ten proces rozdzielający jest kontynuowane aż do każdej partycji mieści się w pamięci lub aż do osiągnięcia poziom rekurencji maksymalną (wyświetlane kolumna danych IntegerData).

Ratowanie mieszania występuje, gdy operacja mieszania przyjmie maksymalną rekursji i przenosi na alternatywny plan przetwarzanie pozostałych danych podzielonym na partycje.Wartość mieszania ratowanie zwykle występuje z powodu danych skośny.

Rekursja mieszania i ratowanie mieszania spowodować obniżonej wydajności serwera.Aby wyeliminować lub zmniejszyć częstotliwość rekursji mieszania i bailouts, wykonaj jedną z następujących czynności:

  • Upewnij się, że statystyki na kolumny, które są połączone lub zgrupowane.

  • Jeśli istnieją dane statystyczne w kolumnach, należy je zaktualizować.

  • Użyj innego typu łączyć.Na przykład zamiast tego należy użyć korespondencji SERYJNEJ lub LOOP łączyć w razie potrzeby.

  • Zwiększ ilość dostępnej pamięci w komputerze.Wartość mieszania rekursji albo ratowanie występuje wtedy, gdy jest za mało pamięci, aby proces kwerendy w miejscu i konieczności spill na dysku.

Tworzenie lub aktualizowanie statystyk na podstawie kolumna biorących udział w sprzężeniu jest najbardziej skutecznym sposobem, aby zmniejszyć liczbę mieszania rekursji albo bailouts występujące.

Uwaga

Warunki łączyć mieszania prolongaty and łączyć mieszania cyklicznych są również używane do opisywania ratowanie mieszania.Aby uzyskać więcej informacji zobaczUnderstanding Hash Joins.

Important noteImportant Note:

Aby określić, gdzie zdarzenie ostrzeżenie hash występuje kiedy optymalizator kwerendy generuje plan wykonania, powinny również zbierać Showplan klasa zdarzenia śledzenia.Można wybrać dowolny plan wykonania zdarzenie klas, z wyjątkiem plan wykonania tekst i tekst plan wykonania (Unencoded) zdarzenie klasy, które nie zwracają nazwę węzła.Nazwy węzła w Showplans zidentyfikować każdej operacji optymalizator kwerendy wykonuje generując plan wykonania kwerend.Operacje te są nazywane podmioty gospodarczei operator w plan wykonania ma nazwę węzła.Kolumna Identyfikator obiektu dla zdarzeń ostrzeżenie hash odpowiada identyfikator węzła w Showplans tak, aby określić, jaki operator lub operacji, jest przyczyną błędu.Aby uzyskać więcej informacji na temat plan wykonania zdarzenie klas, zobacz Displaying Execution Plans by Using SQL Server Profiler Event Classes

Funkcje mieszania ostrzeżenie klasa zdarzenia danych kolumny

Nazwa kolumny danych

Typ danych

Description

Identyfikator kolumny

Czy umożliwia filtrowanie

ApplicationName

nvarchar

Nazwa aplikacji klient, który utworzył połączenie z wystąpienie programu SQL Server. Ta kolumna jest pusta, z wartości przekazanych przez aplikację, a nie z wyświetlanej nazwy programu.

10

Tak

ClientProcessID

int

Identyfikator przypisany przez komputer-host to proces, w którym jest uruchomiona aplikacja klient.Ta kolumna danych jest pusta, jeśli klient dostarcza klientowi przetworzyć identyfikatora.

9

Tak

DatabaseID

int

ID of the database specified by the USE database statement or the default database if no USE database statement has been issued for a given instance.SQL Server Profiler displays the name of the database if the ServerName data column is captured in the trace and the server is available.Należy określić wartość dla bazy danych za pomocą funkcja DB_ID.

3

Tak

NazwaBazyDanych

nvarchar

Nazwa bazy danych, w którym jest uruchomiony w instrukcja użytkownika.

35

Tak

EventClass

int

Typ zdarzenie = 55.

27

Nie

EventSequence

int

Sekwencja danego zdarzenie w żądaniu.

51

Nie

EventSubClass

int

Użytkownik konfigurowalne (0-9)

0 = Rekurencji

1 = Ratowanie

21

Tak

GroupID

int

Identyfikator grupy obciążenia, gdy zdarzenie śledzenia SQL uruchomieniu.

66

Tak

Exec Prepared SQL

nvarchar

Nazwa komputera, na którym działa klient.Ta kolumna danych jest pusta, jeśli klient dostarcza nazwę hosta.Aby określić nazwę hosta, należy użyć funkcja HOST_NAME.

8

Tak

IntegerData

int

Poziom rekurencji (tylko rekursji mieszania).

25

Tak

IsSystem

int

Wskazuje, czy zdarzenie wystąpiło w procesie systemowym, czy w procesie użytkownika.1 = proces systemowy; 0 = proces użytkownika.

60

Tak

LoginName

nvarchar

Nazwa logowania użytkownika (albo SQL Server Logowanie zabezpieczeń lub poświadczenia logowania systemu Windows w postaci <domena>\<Nazwa użytkownika>).

11

Tak

LoginSid

image

Numer identyfikacyjny zabezpieczeń (SID) użytkownika zalogowanego.Te informacje można znaleźć w widoku sys.server_principals wykazu.Każdy identyfikator SID jest unikatowy dla każdego logowania na serwerze.

41

Tak

NTDomainName

nvarchar

Domena systemu Windows, do której należy dany użytkownik.

7

Tak

NTUserName

nvarchar

Przygotowanie programu SQL

6

Tak

Identyfikator obiektu

int

Identyfikator węzła głównego zespołu mieszania w ponownego dzielenia na partycje.Odpowiada identyfikator węzła w Showplans.

22

Tak

IdentyfikatorŻądania

int

Identyfikator żądania, który zawiera informację.

49

Tak

Nazwa_serwera

nvarchar

Nazwa wystąpienie programu SQL Server które jest są śledzone.

26

SessionLoginName

nvarchar

Nazwa logowania użytkownika, który pochodzi z sesja.Na przykład, jeśli łączysz się z SQL Server za pomocą Login1 i wykonać instrukcja jako Login2, wskazują SessionLoginName Login1 i LoginName pokazuje Login2. W tej kolumnie są wyświetlane oba SQL Server i identyfikatory logowania systemu Windows.

64

Tak

SPID

int

Identyfikator sesja, na którym wystąpiło zdarzenie.

12

Tak

Godzina rozpoczęcia

datetime

Czas, w którym zdarzenie uruchomione, jeśli są dostępne.

14

Tak

TransactionID

bigint

Nie obejmuje operacje sortowania dotyczących tworzenia indeksów; tylko operacje sortowania w kwerendzie (na przykład klauzulę ORDER BY w instrukcja SELECT).

4

Tak

XactSequence

bigint

Token, który opisuje bieżącej transakcji.

50

Tak