【摘抄】
最優化資料讀取方案
此處僅涉及:
區域性範圍掃瞄(partial range scan)
表連線的最優化方案
所謂區域性範圍掃瞄,並不是指掃瞄滿足where條件的全部資料行,而是指只要掃瞄了陣列批量(array size,該詞的近似詞義翻譯為"運輸單位")的行數後立刻返回結果,在使用者再次提出輸出要求前暫時停止執行的處理方式。
文中用了乙個計程車晚上載客來描述區域性掃瞄的過程。
在全部範圍掃瞄的執行計畫中雖然有很多專案,但是如果出現了「sort」,則可以斷定是使用了全部範圍掃瞄的方式對執行單元進行處理。
涉及「執行單元」:是指執行計畫分層結構(hierarchical structure)中的一部分。
就是說,從sort所在位置之下的執行單元都是全部範圍掃瞄的部分。
注意:即使出現了sort,也不意味整個sql都按照全部範圍掃瞄來執行。
sort型別,有很多,如:sort(unique),sort(join),sort(aggregate),sort(order by),sort(group by)等。merge join部分的操作也稱為sort merge連線,可以認為該操作為全部範圍掃瞄的方式進行處理的。
hash join來說,in-memory hash join則是完全可以按照區域性範圍掃瞄的方式執行。
一般的hash join,則不能使用區域性範圍掃瞄。
最後,區域性範圍掃瞄和資料庫管理軟體有關。有些軟體沒有實現這個概念。
《海量資料庫解決方案》2011051901
摘抄 表連線的最優化方案 表連線,這裡指狹義的join,是連線資料的最基本方法。表連線方式 a 巢狀迴圈表連線nested loops 既是最傳統的表連線方式,也是最普遍的表連線方式 通過優先許可權處理某個集合來從中獲取常量值,並利用該常量值去對應的集合中查詢滿足連線條件的對應行,所連線數量的多少會...
《海量資料庫解決方案》2011051301
摘抄 表連線的最優化方案 反覆連線方式 之後用於連線 query 的sql要以以前從基表中所讀取的行為基準而被反覆 loop 執行 文中比較nested loops和反覆連線方式,結論是反覆連線方式類似nested loops,只是前者會出現沒有設計出正確的表連線方向 集合順序 而影響了join的速...
《海量資料庫解決方案》2011050301
摘抄 提高區域性範圍掃瞄執行速度的原理 書中提及乙個概念 無條件查詢,按字面理解就行了。如 select from tb 後面不帶任何查詢語句之類的。在書中所說,select from tb order by item 前者可能執行區域性範圍掃瞄,後者執行屬於全部範圍掃瞄 以上,針對的是oracle...