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.

Ważna informacjaWażne:

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