SQL Server的Spool, Worktable 和 Workfile

來源:互聯網
上載者:User

標籤:

一,Spool

Spool的中文解釋是假離線,離線是offline的翻譯。假離線的同義字,是不是真聯機?可以這樣理解,因為兩個裝置確實是聯機狀態,只不過是後台運行。

假離線的原理,通俗的說,是在兩個裝置之間進行資料交換,只不過,一個裝置傳遞資料的速度快,一個裝置傳遞資料的速度慢。為了充分利用高速裝置,在需要傳遞資料時,低速裝置將資料傳遞到緩衝區,同時,高速裝置無需等待低速裝置,而是徑直去處理其他Task,等低速裝置將全部資料傳遞完成之後,高速裝置再去緩衝區讀取資料,然後快速處理,這樣快速裝置就不會閑置,提高了利用率。spool 為了匹配兩個裝置,需要用到一個緩衝區,低速裝置向緩衝區中寫資料,高速裝置從緩衝區中讀取資料。所以,假離線技術的原理,是利用緩衝區轉存資料,匹配裝置的處理效能。

 

分析假離線原理,可以看到,spool額外用到一個緩衝區和兩次IO(寫入和讀取)。

二,SQL Server的Spool

樺仔的部落格寫的非常詳細《SQLSERVER中的假離線》,贊一個!

 

SQL Server的Spool 邏輯運算分為Eager Spool 和 lazy Spool,當出現這兩個運算子時,表明SQL Server 需要將計算的中間結果集儲存到臨時儲存區,這個臨時儲存區建立在tempdb中,臨時儲存區是Worktable 或 Workfile,儲存的內容是不同的。

 

work files could be used to store temporary results for hash joins and hash aggregates.

work tables could be used to store temporary results for query spool, lob variables, XML variables, and cursors.

 

 

"Work files could be used to store temporary results for hash joins and hash aggregates. The returned value should be less than 20. Tempdb work files are used in processing hash operations when the amount of data being processed is too large to fit into the available memory."
Possible problems: High values can indicate thrash in the tempdb file as well as poorly coded queries.


"Work tables could be used to store temporary results for query spool, lob variables, XML variables, and cursors. The returned value should be less than 20. Worktables are used for queries that use various spools (table spool, index spool, and so on)."
Possible problems: High values could cause general slowdown.

 

三,查看Workfile 和 Worktable

建立Workfile 和 Worktable 的目的是為了臨時儲存中間結果集,增加系統的IO負擔,可以通過“set statistics IO On”命令來查看查詢語句建立的Workfile 和worktable,查看臨時儲存區的IO資訊。

 

推薦閱讀:

SQLSERVER中的假離線

SQL Server的Spool, Worktable 和 Workfile

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.