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ż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 |
Zobacz także