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 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 |
See Also