- 我們將在oracle數(shù)據(jù)庫中為要做查詢語句中的字段建立索引,,這一步應(yīng)該自然而然就會想到的,因為創(chuàng)建索引可以大大提高系統(tǒng)的性能,。友情提醒:千萬不要盲目的建立索引,,有時候會得不償失。
- 在sql語句中加入oracle hints,之所以用到了這個是因為使用到了一個工具LECCO SQL Expert Pro for Oracle(如圖),,這個工具將為我們對SQL語句不同的組合進行篩選(在SQL RUN Time中會羅列出系統(tǒng)給出方案的消耗時間),,并且將oracle hints直接運用到其中,用戶可以選擇時間消耗最少的SQL語句。工具使用起來非常容易,,也為我們的優(yōu)化工作節(jié)省的不少時間,。
- 當我們對SQL語句優(yōu)化完了之后,就是要開始對頁面進行處理了,,由于頁面中使用了大量的嵌套循環(huán),,所以我們的原則是減少循環(huán)的次數(shù),因為嵌套的循環(huán)越多,,效率越低,。能用SQL函數(shù)的盡量在SQL語句中完成,不要拋到頁面中執(zhí)行,。由于頁面代碼并交凌亂,,所以我們還要對頁面代碼進行整理,雖然不一定起到什么作用,,但是整理后的代碼看起來會比較清爽,。
- 通過上面的步驟,我們完成了優(yōu)化的大部分工作,,但是結(jié)果并沒有像我們想象中的一樣,,頁面還是訪問的很慢。這讓我們很郁悶,,直到我們使用的組合索引后,情況變得大大改觀,,我們之前只是單一的為每個字段建立索引,,但是這次我們要將這些索引按一定的順序組合起來(如圖),這里我要強調(diào)的是索引的順序必須從后往前的也就是說是按SQL語句中從最后一個條件往前推,。(當條件只有一個的情況下,,oracle也會根據(jù)自己的優(yōu)化策略適當?shù)倪x用我們創(chuàng)建的這個組合索引)
通過使用組合索引,我們訪問的頁面的速度大大提高,,現(xiàn)在不管是一個季度還是一整年的信件統(tǒng)計,,基本上都只需要1秒鐘的時間。呵呵~~~