Exchange Spill olay sınıfı
Exchange Spill olay sınıfı gösterir bir paralel sorgu planı içindeki iletişimi arabellekler geçici olarak için yazılmış tempdb veritabanı. Bu nadiren ve sorgu planı birden çok Aralık taramalar olduğunda oluşur.
Normalde, Transact-SQLgibi çeşitli taramalar üreten sorgu vardır birçok operatörleri, her biri seçer satır aralığını bir tablo veya dizin arasındaki. Alternatif olarak, birden çok aralığı gibi ifadeler kullanarak edinebilirsiniz (T.a > 10 ve T.a < 20) veya (T.a > 100 ve T.a < 120). Ayrıca, sorgu planları T.a üzerinde bir order by yan tümcesi olduğundan veya bir yineleyici planı içinde o sıralanmış düzende dizilerini tüketmek gerektirdiğinden bu aralıklar sırada taranmasını gerektiren gerekir.
Böyle bir sorgu için sorgu planı birden fazla olduğunda paralellik operatörleri tarafından kullanılan bellek iletişimi arabellekler paralellik operatörleri olmak tam ve sorgu yürütme ilerleme durur sayede bir durum ortaya çıkabilir. Bu durumda, bir paralellik işleçleri kendi çıktı tamponuna yazar tempdb (bir işlem olarak adlandırılan bir Döviz spill) böylece bazı onun giriş arabellekleri satırları tüketebilir. Sonunda, tüketici bunları tüketmek hazır olduğunda dökülen satırları tüketiciye iade edilir.
Çok nadiren, çoklu Döviz sızıntıları sorgu yavaş çalışmasına neden aynı yürütme planı içinde oluşabilir. Beşten fazla dökülme içinde aynı sorgu planın yürütülmesine fark, destek uzmanına başvurun.
Exchange sızıntıları, bazen geçici ve veri dağıtım değişiklikleri kaybolabilir.
Exchange spill olayları önlemek için çeşitli yolları vardır:
order by ihmal sonucu gerekmiyorsa yan tümcesi sipariş ayarlayın.
order by gerekirse, order by yan tümcesi birden çok Aralık taramaları (T.a yukarıdaki örnekte) sütunun ortadan kaldırmak.
Dizin ipucu kullanarak, söz konusu tablo farklı bir erişim yolu kullanmak için iyileştirici gücü.
Sorguyu farklı sorgu yürütme planı üretmek için yeniden yazın.
maxdop ekleyerek sorguyu seri yürütme gücü = 1 seçenek dizin veya sorgu işlemi sonunda. Daha fazla bilgi için ALTER INDEX (Transact-SQL)ve Parallel ındex işlemi yapılandırma.
Önemli |
---|
Yeri belirlemek için Exchange Spill olay oluştuğunu sorgu iyileştirici yürütme planı oluşturduğunda, ayrıca bir Showplan olay sınıfı izleme toplamanız gerekir. Showplan olay sınıfları birini seçebilirsiniz Showplan metin ve Showplan metin (Unencoded) bir düğüm kimliği dönmek mi olay sınıfları Düğüm kimliği Showplans içinde sorgu en iyi duruma getiricisi sorgu yürütme planı oluşturduğunda gerçekleştirdiği her işlemi tanımlayın. Bu işlemler işleçler denir ve bir düğüm kimliği her bir Showplan işleç vardır ObjectID sütun için Exchange Spill olaylara karşılık Showplans düğüm kimliği böylece hangi operatör veya işlem hatası neden olduğunu belirleyebilir. Showplan olay sınıfları hakkında daha fazla bilgi için bkz.Displaying Execution Plans by Using SQL Server Profiler Event Classes |
Exchange Spill olay sınıfı veri sütunları
Veri sütunu adı |
Veri türü |
Açıklama |
Sütun Kımlığı |
Filtrelenebilen |
---|---|---|---|---|
ApplicationName |
nvarchar |
Örneğine bağlantı oluşturulan istemci uygulamanın adını SQL Server. Bu sütun, programı görüntülenen adı yerine uygulama tarafından geçirilen değerleri ile doldurulur. |
10 |
Evet |
ClientProcessID |
int |
İstemci uygulamasının çalıştığı işlemin ana bilgisayar tarafından atanan Kımlığı. İstemci istemci sağlıyorsa bu veri sütunu doldurulur süreç kimliği. |
9 |
Evet |
DatabaseID |
int |
KULLANILARAK belirtilen veritabanı Kımlığı databasedeyimi veya varsayılan veritabanını kullanmak durumunda databasedeyimi için belirli bir örneği verilen. SQL Server Profilerveritabanı adını görüntüler SunucuAdı veri sütunu yakalanan izleme ve sunucu kullanılabilir. DB_ID işlevini kullanarak bir veritabanı değerini belirleyin. |
3 |
Evet |
Veritabanı adı |
nvarchar |
Kullanıcı deyimi çalıştıran veritabanının adı. |
35 |
Evet |
EventClass |
int |
Olay türü = 127. |
27 |
Hayır |
EventSequence |
int |
Istek içinde belirli bir olay sırası. |
51 |
Hayır |
EventSubClass |
int |
Olay alt sınıf türü. 1 = Spill başlar 2 = Spill sonu |
21 |
Evet |
Grup kimliği |
int |
Burada sql izleme olay yangınlar iş yükünü Grup Kımlığı. |
66 |
Evet |
HostName |
nvarchar |
İstemci üzerinde çalıştığı bilgisayarın adı. İstemci ana bilgisayar adı sağlıyorsa bu veri sütunu doldurulur. Ana bilgisayar adını belirlemek için host_name işlevini kullanın. |
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ı oturum açma adı (ya da SQL Servergüvenlik oturumu veya Windows oturum açma kimlik bilgileri formu <DOMAIN>\<username>). |
11 |
Evet |
LoginSid |
görüntü |
Oturum açmış kullanıcının güvenlik kimlik numarası (SID). Sen-ebilmek bulmak için bu bilgiyi syslogins tablo ana veritabanı. Her SID, sunucudaki her bir giriş 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 Kımlığı. Showplans düğüm kimliği ile ilişkilidir. |
22 |
Evet |
RequestId |
int |
Deyimi içeren istek Kımlığı. |
49 |
Evet |
SunucuAdı |
nvarchar |
Örnek adı SQL ServerIzlenen. |
26 |
Hayır |
SessionLoginName |
nvarchar |
Oturum kökenli kullanıcının oturum açma adı. Örneğin, bağlandığınız SQL Serverolarak Login2, bir deyimini yürütmek ve Login1 kullanarak SessionLoginName Login1 gösterir ve LoginName Login2 gösterir. Bu sütun her ikisini de görüntüler SQL Serverve Windows oturumlarının. |
64 |
Evet |
SPID |
int |
Olayın oluştuğu oturumun Kımlığı. |
12 |
Evet |
StartTime |
datetime |
Saat olay, varsa başlatıldı. |
14 |
Evet |
TransactionID |
bigint |
Hareketin sistem tarafından atanan Kımlığı. |
4 |
Evet |
XactSequence |
bigint |
Geçerli hareket açıklar belirteci. |
50 |
Evet |
Ayrıca bkz.
Başvuru
sp_trace_setevent (Transact-sql)