第9章 關系查詢處理和查詢優化
了解
- 查詢處理的基本步驟(查詢分析、查詢檢查、查詢優化、查詢執行)
掌握
- 什么是關系系統的查詢優化,查詢優化的方法
- 畫出查詢的語法樹以及優化后的語法樹
- 代數優化算法、物理優化算法
知識點
- 查詢處理的基本步驟
- 查詢分析
- 查詢檢查
- 查詢優化
- 查詢執行
- 查詢優化在關系數據庫系統中的重要性和可能性
- 重要性
- 關系系統的查詢優化既是RDBMS實現的關鍵技術,又是關系系統的優點所在,它減輕了用戶選擇存取路徑的負擔,用戶只要提出“干什么”,不必指出“這么干”
- 查詢優化的優點不僅在於用戶不必考慮如何最好地表達查詢以獲得較好的效率,而且在於系統可以比用戶程序的“優化”做得更好
- 可能性
- 優化器可以從數據字典中獲取許多統計信息,例如各個關系中的元組數,關系中每個屬性值的分布情況,這些屬性上是否有索引,是什么索引(B+數索引、Hash索引、唯一索引、組合索引)等等。優化器可以根據這些信息選擇有效的執行計划,而用戶程序則難以獲得這些信息
- 如果數據庫的物理統計信息改變了,系統可以自動對查詢進行重新優化以選擇相適應的執行計划。在非關系系統中必須重寫程序,而重寫程序在實際應用中往往是不太可能的
- 優化器可以考慮數十甚至數百種不同的執行計划,從中選出較優的一個,而程序員一般只能考慮有限的幾種可能性
- 優化器中包括了很多復雜的優化技術,這些優化技術往往只有最好的程序員才能掌握。系統的自動優化相當於使得所有人都擁有這些優化技術
- 重要性
-
- 語法樹
-
- 語法樹
- 關系數據庫管理系統查詢優化的一般准則
- 代數優化策略
- 選擇運算應盡可能先做
- 把投影運算和選擇運算同時進行
- 把投影同其前或其后的雙目運算結合起來執行
- 把某些選擇同在它前面要執行的笛卡兒積結合起來成為一個連接運算
- 找出公共子表達式
- 物理優化
- 選取合適的連接算法
- 代數優化策略
- 關系數據庫管理系統查詢優化的一般步驟
- 把查詢轉換成某種內部表示,通常用的內部表示是語法樹
- 把語法樹轉換成標准(優化)形式,即利用優化算法把原始的語法樹轉換成優化的形式
- 選擇低層的存取路徑
- 生成查詢計划,選擇所需代價最小的計划加以執行
-