10. 6 查詢優(yōu)化
1、 合理使用索引:索引是數(shù)據庫中重要的數(shù)據結構,根本目的就是為了提高查詢效率,使用原則如下 :
(1) 經常在索引中作為條件被使用的列,應為其建立索引;
(2) 頻繁進行排序或分組(即進行group by或order by操作)的列,應為其建立索引;
(3) 一個列的值域很大時,應為其建立索引;
(4) 如果待排列的列有多個,應在這些列上建立復合索引;
(5) 可以使用系統(tǒng)工具來檢查索引的完整性,必要時進行修復。
2、 避免或簡化排序:因為磁盤排序的開銷很大,當能夠利用索引自動以適當?shù)拇涡虍a生輸出時,優(yōu)化器就可以避免不必要的排序步驟,以下是一些影響因素:
(1) 由于現(xiàn)有的索引不足,導致排序時索引中不包括一個或幾個等待排序的列;
(2) group by或order by子句中列的次序與索引的次序不一樣;
(3) 排序的列來自不同的表。
為了避免不必要的排序,就要正確地增建索引,合理地合并數(shù)據庫表。如排序不可避免,那么應試圖簡化它。
3、 消除對大型表行數(shù)據的順序存。涸谇短撞樵冎校瑢Ρ淼捻樞虼嫒Σ樵冃士赡墚a生致命的影響,解決方法就是對連接的列進行索引。還可以使用并集來避免順序存取。
4、 避免相關子查詢:查詢嵌套層次越多,效率越低,應盡量避免子查詢,如不可避免,那么要在子查詢中過濾盡量多的行;
5、 避免困難的正規(guī)表達式:避免含MATCHES和LINK關鍵字的正規(guī)表達式;
6、 使用臨時表加速查詢:把表的一個子集進行排序并創(chuàng)建臨時表,有時能加速查詢;
7、 用排序來取代非順序磁盤存取;
8、 不充分的連接條件;
9、 存儲過程;
10、 不要隨意使用游標;
11、 事務處理。
相關推薦:2010年9月計算機等級考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |