《海量資料庫解決方案》2011042601

2022-03-01 15:54:24 字數 747 閱讀 4496

【摘抄】

最優化資料讀取方案

此處僅涉及:

區域性範圍掃瞄(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...