為什麼具有公共子表達式假脫機的視窗聚合函數的邏輯讀取如此高?
您已經注意到,在具有公共子表達式的執行計劃中spools 中,報告的大表邏輯讀取明顯高於預期。調查揭示了一個似乎成立的公式:工作表邏輯讀取= 1 NumberOfRows 2 NumberOfGroups 4.
理解公式
高邏輯讀取源自工作表處理讀取的獨特方式。此上下文中的邏輯讀取指的是讀取的行數,而不是散列頁數。這意味著對於處理的每一行,工作表都會註冊一次邏輯讀取。
邏輯讀取細分
複製嘗試使用較低的邏輯讀取
您嘗試使用堆表複製程序僅顯示11 次邏輯讀取,因為:
結論
你發現的公式成立,因為它準確地反映了工作表讀取的行。更高的邏輯讀取是由於基於行的計數方法,而不是效率低。原始查詢中使用的巢狀循環計劃進一步放大了此計數。
以上是為什麼具有公共子表達式假脫機的視窗聚合函數會導致如此高的邏輯讀取?的詳細內容。更多資訊請關注PHP中文網其他相關文章!