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

2022-03-01 15:54:23 字數 481 閱讀 9582

【摘抄】

提高區域性範圍掃瞄執行速度的原理

書中提及乙個概念:無條件查詢,按字面理解就行了。

如:select * from tb

後面不帶任何查詢語句之類的。

在書中所說,select * from tb order by item;

前者可能執行區域性範圍掃瞄,後者執行屬於全部範圍掃瞄

以上,針對的是oracle來說的,前者會受到array size的影響

在mssql2000上實踐類似語句:

前者採用聚簇索引掃瞄

後者採用普通索引掃瞄或全表掃瞄

當然,前者效率高些。

書中結論:

執行速度變慢的真正原因不僅是因為排序,為了排序操作而對整體資料範圍進行掃瞄也是其中之一。

書中乙個例子使用不同的索引來說明乙個問題,結論如下:

滿足驅動查詢條件的資料範圍越小,所執行的操作量就越少;而滿足過濾查詢條件的資料範圍越大,所執行的操作量越少。

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

摘抄 表連線的最優化方案 表連線,這裡指狹義的join,是連線資料的最基本方法。表連線方式 a 巢狀迴圈表連線nested loops 既是最傳統的表連線方式,也是最普遍的表連線方式 通過優先許可權處理某個集合來從中獲取常量值,並利用該常量值去對應的集合中查詢滿足連線條件的對應行,所連線數量的多少會...

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

摘抄 表連線的最優化方案 反覆連線方式 之後用於連線 query 的sql要以以前從基表中所讀取的行為基準而被反覆 loop 執行 文中比較nested loops和反覆連線方式,結論是反覆連線方式類似nested loops,只是前者會出現沒有設計出正確的表連線方向 集合順序 而影響了join的速...

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

摘抄 最優化資料讀取方案 此處僅涉及 區域性範圍掃瞄 partial range scan 表連線的最優化方案 所謂區域性範圍掃瞄,並不是指掃瞄滿足where條件的全部資料行,而是指只要掃瞄了陣列批量 array size,該詞的近似詞義翻譯為 運輸單位 的行數後立刻返回結果,在使用者再次提出輸出要...