SQL Server查詢計劃系列之——邏輯運算子與物理運算子

sqysl發表於2018-02-19


1.        邏輯運算子

2.        物理運算子


1)        Init(): Init() 方法導致一個物理運算子完成自身初始化,並建立任何需要的資料結構。雖然物理運算子可以接收很多Init()呼叫,但一般來說,一個物理運算子只接收有個Init()。

3)        Close(): Close()方導致一個物理操作執行一些清理操作並將其本身關閉。一個物理運算子只能接收有個Close()呼叫。

物理運算子相關注意事項

2)        出現於Showplan輸出中的ActualRebinds和ActualRewinds指Init()方法被呼叫的次數。除非一個運算子為迴圈連線(Loop Join)的內行源,ActualRebinds為1且ActualRewinds為0。如果一個運算子為迴圈連線的內行源,重新繫結(rebinds)與重繞(rewinds)的和應該等於該迴圈連線外行源的行數。重新繫結是指連線中一個或多個相關引數改變時內行源必須被重新評估。重繞是指沒相關引數改變時可以重用內行源之前的結果。ActualRebinds與ActualRewinds出現於SETSTATISTICS XML ON設定而產生的Showplan輸出中。它們僅在Nonclustered Index Spool、Remote Query、Rows CountSpool、Sort、Table Spool和Table-valuedFunction操作中被填充。當StartupExpression屬性被設定為TRUE時, ActualRebinds與ActualRewinds在Assert和Filter運算子中也許會被填充。當ActualRebinds與ActualRewinds出現於XMLShowplan中時,它們可以和EstimateRebinds 與EstimateRewinds相比較。當它們並不存在時,則EstimateRows可與ActualRows相比較。注意,當它們不存在時,實際圖形Showplan輸出中actual rebinds與actualrewinds則顯示為0。

<1p style="box-sizing:border-box;font-size:16px;color:#4F4F4F;line-height:26px;min-height:26px;margin-top:0px;margin-bottom:16px;text-align:justify;font-family:" white-space:normal;"=""> 3)        相關計數器ActualEndOfScans僅在SETSTATISTICS XML ON設定而產生的Showplan輸出中可用。當物理運算子到達其資料流末端時,該計數器將被增加1。物理運算子能到達其資料流末端0、1或多次。就像rebinds和rewinds, 僅當該運算子為迴圈連線的內行源時,該末端掃描(end of scans)數才可能大於1。末端掃描數應該小於等於rebinds 與rewinds之和。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8484829/viewspace-2151108/,如需轉載,請註明出處,否則將追究法律責任。

相關文章