Aracılığıyla paylaş


Exchange sıvı dökülmesine olay sınıfı

The Exchange Spill event class indicates that communication buffers in a parallel query plan have been temporarily written to the tempdb database.Bu nadiren ve sorgu planı birden çok aralık taramaları olduğunda oluşur.

Normal olarak, Transact-SQL Bu tür aralık taramalar üreten sorgusu var çoğu her biri bir dizi satırları seçer, operatörler arasında bir tablo veya bir dizini.Alternatif olarak, birden çok aralığı gibi ifadeler kullanarak elde edebilirsiniz (T.a > 10 ve T.a < 20) veya (T.a > 100 ve T.a < 120).Ayrıca, sorgu planları bu aralıklar T.a order by yan tümce tümce tümce olduğundan veya sıralı düzende dizilerini tüketen bir yineleyici planı içinde gerektirdiği için sırayla taranması istemelidir.

Ne zaman böyle bir sorgu için sorgu planına sahip birden çok Parallelism işleçleri tarafından kullanılan arabellekleri iletişim Parallelism İşletmenleri tam olur ve sorgu yürütme ilerleme durur whereby bir durum ortaya çıkabilir.Bu durumda, biri Parallelism işleçleri kendi çıktı arabelleği için yazar tempdb (bir işlem olarak adlandırılan bir exchange spill) böylece bazı kendi giriş arabellekleri satırları kullanılmasına neden olabilir.Sonuçta, tüketici bunları tüketmek hazır olduğunda spilled satırları tüketiciye döndürülür.

Çok nadiren yavaş yürütmek sorgu neden aynı yürütme planı içinde birden çok exchange dökülme oluşabilir.Beşten fazla dökülme içinde aynı sorgu planın yürütülmesine dikkat edin, destek uzmanına başvurun.

Exchange dökülme, bazen geçici ve veri dağıtım değişiklikleri kaybolabilir.

Exchange sıvı dökülmesine olayları önlemenin birkaç yolu vardır:

  • Gerekirse, order by yan tümce tümce tümce kullanmazsanız sonuç küme sipariş için.

  • order by gerekirse, ortadan sütun birden çok aralık taramaları (T.a Yukarıdaki örnekte) order by yan tümce tümce tümcende yer almaktadır.

  • Dizin ipucu kullanarak, söz konusu tablo farklı erişim yol kullanmak için en iyi duruma getiricisi zorlamak.

  • Sorguyu farklı sorgu yürütme planı üretmek için yeniden yazın.

  • maxdop ekleyerek sorguyu seri yürütülmesini zorlamak = sorgu veya dizin işlemi sonuna 1 seçenek.Daha fazla bilgi için bkz: en büyük ölçüde parallelism seçeneği ve Paralel dizin işlemleri yapılandırma.

Önemli notÖnemli

Yerini belirlemek için Exchange Spill olayı oluştuğu zaman sorgu iyileştiricisi yürütme planı oluşturur Showplan olay sınıfı bir izleme toplamanız gerekir.Showplan olay sınıflarının dışında seçebilirsiniz Showplan metin ve Showplan metin (Unencoded) bir düğüm kimliği dönmek olay sınıflarıNode ID'leri Showplans içinde her işlemi tanımlamak sorgu iyileştiricisi sorgu yürütme planı oluşturduğunda gerçekleştirir.Bu işlemler işleçler denir ve bir düğüm kimliği her içinde bir Showplan işleç vardır.The ObjectID column for Exchange Spill events corresponds to the Node ID in Showplans so you can determine which operator, or operation, is causing the error.Showplan olay sınıfları hakkında daha fazla bilgi için bkz: SQL Server Profiler olay sınıfları kullanarak planları yürütme görüntüleme

Exchange sıvı dökülmesine olay sınıfı veri sütunları

Veri sütun adı

Veri türü

Açıklama

Sütun kimliği

Süzgeçlenebilir

ApplicationName

nvarchar

Bağlantı oluşturulan istemci uygulamanın adını bir örnek , SQL Server.Bu sütun görüntülenen programın adı yerine uygulama tarafından geçirilen değerleri ile doldurulur.

10

Evet

ClientProcessID

Int

istemci uygulamasının çalıştığı işlemin ana bilgisayarı tarafından atanan kimliği.Bu verileri sütun istemci istemci sağlıyorsa, doldurulan işlem kimliği.

9

Evet

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.DB_ID kullanarak bir veritabanı için bir değer belirlemek işlev.

3

Evet

Veritabanı adı

nvarchar

Kullanıcı deyim çalıştıran veritabanının adı.

35

Evet

EventClass

Int

Olay türü = 127.

27

Hayır

EventSequence

Int

İstek içinde belirli bir olay sırası.

51

Hayır

EventSubClass

Int

Olay alt sınıf türü.

1 = Sıvı dökülmesine başlamak

2 = Sıvı dökülmesine son

21

Evet

Grup Kimliği

Int

Kimliği iş yükü grubu burada sql izleme olay tetikler.

66

Evet

Ana bilgisayar adı

nvarchar

istemci üzerinde çalıştığı bilgisayarın adı.Bu verileri sütun istemci ana bilgisayar adı girerse doldurulur.Ana bilgisayar adını belirlemek için host_name kullanın işlev.

8

Evet

IsSystem

Int

Olay Sistem işlemi veya kullanıcı işlemi oluştu gösterir.1 = sistem, 0 = kullanıcı.

60

Evet

LoginName

nvarchar

Kullanıcının oturum açma adı (ya da SQL Server güvenlik oturumu veya Windows oturum açma kimlik bilgileri şeklindeki <etki alanı>\<kullanıcı adı>).

11

Evet

LoginSid

resim

Oturum açmış kullanıcının güvenlik kimlik numarası (SID).Bu bilgileri de bulabilirsiniz syslogins tablo , ana veritabanı.Her SID sunucudaki her oturumu için benzersizdir.

41

Evet

NTDomainName

nvarchar

Kullanıcının ait olduğu Windows etki alanı.

7

Evet

NTUserName

nvarchar

Windows kullanıcı adı.

6

Evet

ObjectID

Int

Nesnenin sistem atanan kimliği.Showplans içinde düğüm kimliği ile karşılık gelir.

22

Evet

RequestId

Int

deyim içeren istek kimliği.

49

Evet

Sunucuadı

nvarchar

Adı örnek , SQL Server izlenen.

26

Hayır

SessionLoginName

nvarchar

Oturum kaynaklı kullanıcı oturum açma adı.Örneğin, bağlandığınız, SQL Server kullanarak Login1 ve yürütmek bir deyim olarak Login2, SessionLoginName Login1 gösterir ve LoginName Login2 gösterir.Bu sütun, her ikisini de görüntüler SQL Server ve Windows oturumu açma.

64

Evet

SPID

Int

Kimliği oturum olay oluştuğu üzerinde.

12

Evet

StartTime

datetime

Saat, olay, varsa başladı.

14

Evet

TransactionID

bigint

Hareketin sistem tarafından atanan kimliği.

4

Evet

XactSequence

bigint

Geçerli hareket açıklar belirteci.

50

Evet