Klasa zdarzenia rozlewania Exchange
Spill wymiany klasa zdarzenie wskazuje, że bufory komunikacji w plan kwerend równolegle zostały tymczasowo zapisane w tempdb bazy danych.Dzieje się tak rzadko, i tylko wtedy, gdy plan kwerend wielu zakres skanowania.
Normalnie Transact-SQL kwerendę, która generuje taki zakres skanowania ma wiele między podmiotami gospodarczymi, z których każdy określa zakres wierszy z tabela lub indeks.Alternatywnie można uzyskać wiele zakresów, takich jak przy użyciu wyrażeń (T.a > 10 T.a I < 20) lub (T.a > 100 T.a I < 120).Ponadto planów kwerend muszą wymagać, że te zakresy skanowanego w kolejności albo ponieważ ORDER BY klauzula na T.a, lub ponieważ iterację w ramach planu wymaga, że zajmują go krotek posortowane.
Jeżeli plan kwerend dla takiej kwerendy ma wiele równoległości prostych operatorów bufory komunikacji pamięci używane przez równoległości prostych przepełni operatorów i sytuacja może powstać, według którego zatrzymuje postępu wykonanie kwerendy.W tej sytuacji, jeden z równoległości prostych operatorów zapisuje buforu wyjściowego do tempdb (o nazwie operacji spill wymiany), dzięki czemu może zużyć wiersze z niektórych swoich buforów danych wejściowych.Ostatecznie wiersze przedostania się rozlanej są zwracane do konsumenta, gdy konsument jest gotowa do ich zajmują.
Bardzo rzadko wielu zalanie exchange może wystąpić w ten sam plan wykonać powoduje spowolnienie wykonywania kwerendy.Jeśli więcej niż pięciu zalanie w ramach realizacji tego samego planu kwerend, skontaktuj się z pracownikiem pomocy technicznej.
Zalanie Exchange są czasami przejściowe i może zniknąć jako zmiany rozkładu danych.
Aby uniknąć zdarzeń rozlewania exchange na różne sposoby:
Pomiń klauzula ORDER BY, jeśli nie trzeba zestaw wyników do zamówione.
Jeżeli ORDER BY jest wymagane, wyeliminować kolumna , który uczestniczy w wielu skanowania zakres (T.a w powyższym przykładzie) z klauzula ORDER BY.
Korzystanie z wskazówką index życie Optymalizator Używanie ścieżka dostępu w danej tabela.
Nowa napisać kwerendę do wyprodukowania plan wykonania innej kwerendy.
Życie szeregowego wykonanie kwerendy, dodając MAXDOP = 1 opcję koniec operacji kwerendy lub indeksu.Aby uzyskać więcej informacji, zobacz maksymalny stopień równoległości prostych opcji i Konfigurowanie operacji równoległych indeksu.
![]() |
---|
Aby ustalić, gdzie Spill wymiany 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 tekstu i Showplan tekstu (Unencoded) zdarzenie klasy, które nie zwraca identyfikator węzła.Identyfikatory węzła w Showplans identyfikacji każdej operacji wykonuje optymalizator kwerendy, generując plan wykonania kwerend.Operacje te są nazywane operator i każdego operator w Showplan ma identyfikator węzła.ObjectID kolumna dla Spill wymiany zdarzenia odpowiada identyfikator węzła w Showplans tak, aby 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 |
Kolumny danych klasy zdarzeń rozlewania Exchange
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ści przekazanych przez aplikację, a nie wyświetlaną nazwę 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 = 127. |
27 |
Nie |
EventSequence |
int |
Sekwencja danego zdarzenie w żądaniu. |
51 |
Nie |
EventSubClass |
int |
Typ podklasa zdarzenie. 1 = Rozlewania rozpocząć 2 = Osiągnął koniec |
21 |
Tak |
GroupID |
int |
Identyfikator grupa obciążenia, gdy zdarzenie śledzenia SQL fires. |
66 |
Tak |
Nazwa hosta |
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 |
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 |
obraz |
Numer identyfikacyjny zabezpieczeń (SID) użytkownika zalogowanego.Można znaleźć te informacje w syslogins tabela wzorca bazy danych.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 |
Identyfikator obiektu |
int |
Przypisane przez system Identyfikatora obiektu.Odpowiada identyfikator węzła w Showplans. |
22 |
Tak |
IdentyfikatorŻądania |
int |
Identyfikator żądania zawierające instrukcja. |
49 |
Tak |
Nazwa_serwera |
nvarchar |
Nazwa wystąpienie SQL Server śledzone. |
26 |
Nie |
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 |
Godzina rozpoczęcia |
data_i_godzina |
Czas, jaką zdarzenie uruchomiona, jeśli są dostępne. |
14 |
Tak |
Identyfikator transakcji |
bigint |
Identyfikator przypisany systemu transakcji. |
4 |
Tak |
XactSequence |
bigint |
Token, który opisuje bieżącej transakcji. |
50 |
Tak |
Zobacz także