Udostępnij za pośrednictwem


Klasa zdarzenia ostrzegawcze mieszania

Hash Warningklasa zdarzenia Może służyć do monitorowania podczas mieszania rekursji lub zaprzestania mieszania (hash podejmowano) wystąpił podczas operacji mieszania.

Rekursja mieszania występuje podczas wprowadzania kompilacji nie dopasowanie do dostępnej pamięci, powodując podziału wkład do wielu partycji, które są przetwarzane oddzielnie.Jeśli dowolne z tych partycji nadal nie dopasowanie do dostępnej pamięci jest podzielony na subpartitions, które również są przetwarzane oddzielnie.Ten proces rozdzielający kontynuuje aż do każdej partycji pasuje do dostępnej pamięci lub aż do osiągnięcia poziom maksymalnego rekursji (wyświetlane w IntegerData kolumna danych).

Podejmowano mieszania występuje, gdy operację mieszania osiągnie poziom jego maksymalną rekursji i przenosi do alternatywnego planu przetwarzanie pozostałych danych podzielonym na partycje.Podejmowano mieszania zazwyczaj spowodowany danych skośny.

Rekursję mieszania i mieszania podejmowano spowodować ograniczenie wydajności serwera.Aby wyeliminować lub zmniejszyć częstotliwość rekursji mieszania i akcji ratunkowych, wykonaj jedną z następujących czynności:

  • Upewnij się, że statystyki kolumn, które są sprzężone lub zgrupowane.

  • Jeśli istnieje statystyki w kolumnach, należy je zaktualizować.

  • Użyj innego typu łączyć.Na przykład użyć korespondencji seryjnej lub pętli łączyć, jeśli właściwe.

  • Zwiększyć ilość dostępnej pamięci na komputerze.Rekursja mieszania lub podejmowano występuje, gdy jest za mało pamięci do procesu kwerendy w miejscu i potrzebują spill na dysku.

Tworzenie lub aktualizowanie statystyki zaangażowanych w kolumnie łączyć jest najbardziej skutecznym sposobem na zmniejszenie liczby rekursji mieszania lub akcji ratunkowych, które występują.

Ostrzeżenie

Warunki wstępnego mieszania łączyć i łączyć mieszania cykliczne są również używane do opisywania podejmowano mieszania.Aby uzyskać więcej informacji, zobacz Opis mieszania przyłącza.

Ważna informacjaWażne:

Aby ustalić, gdzie Hash Warning występuje zdarzenie, kiedy optymalizator kwerendy generuje plan wykonania, należy również zbierać klasa zdarzenia Showplan śledzenia.Można wybrać dowolny z Showplan zdarzenie klas z wyjątkiem Showplan Text i Showplan Text (Unencoded) zdarzenie klasy, które nie zwraca identyfikator węzłaIdentyfikatory węzła w Showplans identyfikacji każdej operacji wykonuje optymalizator kwerendy, generując plan wykonania kwerend.Operacje te są nazywane Operatorzy, i każdego operator w Showplan ma identyfikator węzła. ObjectID kolumna dla Hash Warning zdarzenia odpowiada identyfikator węzła w Showplans, dzięki czemu można określić, które operator, lub operacji, jest przyczyną błędu.Więcej informacji o Showplan zdarzenie klasy, zobacz Wyświetlanie wykonanie planów przy użyciu klas zdarzeń programu SQL Server Profiler

Funkcje mieszania dla kolumn danych klasa zdarzenia ostrzeżenia

Nazwa kolumny danych

Typ danych

Opis

Identyfikator kolumny

Czy umożliwia filtrowanie

ApplicationName

nvarchar

Nazwa aplikacji klient, który utworzył połączenie z wystąpienie SQL Server.To kolumna jest wypełniona wartościami przekazane przez aplikację, zamiast z wyświetlanej nazwy programu.

10

Tak

ClientProcessID

int

Identyfikator przypisany przez komputer-host do procesu, w którym jest uruchomiona aplikacja klient.Ta kolumna danych jest wypełniane, 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 przy użyciu funkcja DB_ID.

3

Tak

DatabaseName

nvarchar

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

35

Tak

EventClass

int

Typ zdarzenie = 55.

27

Nie

EventSequence

int

Sekwencja danego zdarzenie w żądaniu.

51

Nie

EventSubClass

int

Typ podklasa zdarzenie.

0 = Rekursji

1 = Podejmowano

21

Tak

GroupID

int

Identyfikator grupa obciążenia, gdy zdarzenie śledzenia SQL fires.

66

Tak

HostName

nvarchar

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

8

Tak

IntegerData

int

Poziom rekursji (tylko rekursji mieszania).

25

Tak

IsSystem

int

Wskazuje, czy wystąpiło zdarzenie procesu systemowego lub proces użytkownika.1 = system, 0 = użytkownika.

60

Tak

LoginName

nvarchar

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

11

Tak

LoginSid

image

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

41

Tak

NTDomainName

nvarchar

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

7

Tak

NTUserName

nvarchar

Nazwa użytkownika systemu Windows.

6

Tak

ObjectID

int

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

22

Tak

RequestID

int

Identyfikator żądania, który zawiera instrukcja.

49

Tak

ServerName

nvarchar

Nazwa wystąpienie SQL Server , odszukane.

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 wykonywanie instrukcja jako Login2, SessionLoginName pokazuje Login1 i LoginName zawiera Login2.To kolumna wyświetla zarówno SQL Server i logowania do systemu Windows.

64

Tak

SPID

int

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

12

Tak

StartTime

datetime

Czas, jaką zdarzenie uruchomiona, jeśli są dostępne.

14

Tak

TransactionID

bigint

Identyfikator przypisany systemu transakcji.

4

Tak

XactSequence

bigint

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

50

Tak