這篇技巧性文章是由“國際Oracle使用者組”(IOUG)提供的,它是一個由使用者組成的組織,這個組織通過提供高品質的資訊、培訓、網路和支援,來提高Oracle資料庫專家和資料庫開發人員的水平。這篇文章摘自由David Welch所寫的論文《可預見的Oracle應用程式效能調優》。點擊這裡成為“國際Oracle使用者組”的一員,從而獲得成千上萬的由Oracle使用者寫的技巧性文章和科技文獻。
引言
我們見到過很多帶有巨大效能問題的Oracle應用程式和電子商務套件安裝。我們得出的結論是:這些安裝都可以在效能方面取得進一步的提升。換句話說,效能已經很高,幾乎不能得到再得到改善的安裝是很少見的。
有爭議的問題
針對產品系統堆棧而言,我們的底部端對端效能調優方法總是很快產產生果,比我們認為的遵循廣泛的備忘列表要快。我提出以下一些問題共討論:
大部分效能改善的可能性都是在應用程式級上:這條結論來自Metalink上關於效能調優的一個顯著的注釋。這條結論和我們的經驗效能調優系統堆棧沒有統計意義上的關係。
平均需要兩天的時間:這是書上做出的結論。但我們的經驗不支援這個結論。我認為得出一個Oracle應用程式效能改善的策略最少應該需要12天。第一天早晨開會是很常見的事。最後兩天主要用來完成行政方面和技術級上的有關發現、勝利和緊接著的推薦的文檔工作。可以誇張地說,如果一個效能改善不被記錄下來形成文檔,那麼以後很難再重複類似的效能改善。如果對出現的問題不記錄下來形成文檔,那麼很可能它會再次發生。如果一個問題及其解決方案不被記錄下來形成文檔的話,對它的監測將非常困難。
擴充片段:對於聯機交易處理系統,這應該不是一個問題。我們聽過很多有關“聯機交易處理系統”對片段嚴重的表(這些表完全是索引值惟一的)進行交易處理不會影響效能的說法。但是,我們應該經常性地重組以消除片段,這會帶來效能上的巨大改善。Oracle儲存管理改善正在向將片段帶來的影響最小化大踏步地邁進。
由於緩衝輸入輸出不是大問題,所以需要對磁碟輸入輸出進行效能調優:這裡有兩點需要說明。磁碟輸入輸出的實際開銷並不是記憶體緩衝輸入輸出的一萬倍。真實的比值接近70。即使你的CPU似乎正在抵銷這個代價,並且不帶來任何顯著的效能問題,但是這個問題顯然會限制你的系統的延展性。隨著時間的流逝,我們越來越重視過高的記憶體緩衝輸入輸出,同時找尋效能改善的機會。
OATablespace模型和遷移工具集:發行的Metalink注釋(10/03)聲稱“這個新模型帶來了即時效能改善。”這個模型的概念是將100多個Oracle應用程式資料表空間合并成一個以10計數的資料表空間。這會帶來潛在的儲存空間節省嗎?或許。這會帶來更高的操作效率嗎?它依賴於其他東西。我們還沒有講解這個工具集。但是我們已經理解了在白板級上的資料表空間合并是如何改善效能的。
對你的個人電腦用戶端進行磁碟磁碟重組:在這本書中有關這個問題的討論很多。這或許是正確的,因為在寫作本書時正流行“胖用戶端”。但是現在,Oracle應用程式用戶端是一個“瘦用戶端”(從Oracle廢除Jinitiator開始,我們稱瀏覽器為瘦用戶端),不要期待能從對你的個人電腦用戶端硬碟進行磁碟磁碟重組中得到效能提升。
載入模組補丁:這是Oracle支援人員對於效能問題經常給出的對策,其實在很多情況下,它並不合適。原因是打補丁經常會帶來不穩定性。如果對於補丁的依賴性沒有給予充分考慮,你可能會發現你不得不載入整個補丁包,而你根本就沒打算載入它們,結果就是對你系統的堆棧穩定性產生了影響。