【摘抄】
提高區域性範圍掃瞄執行速度的原理
書中提及乙個概念:無條件查詢,按字面理解就行了。
如: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,該詞的近似詞義翻譯為 運輸單位 的行數後立刻返回結果,在使用者再次提出輸出要...