資料庫是資訊系統中核心的部分,資料庫的高效性、安全性、穩定性、延展性,是專案成功的關鍵之一。乙個好的資料庫系統,設計當然是關鍵,但是就像顯微鏡的粗調和微調,當軟體開發完成後,通過不斷的對系統的跟蹤監控,對資料庫系統進行優化也是必不可少的。可以認為優化是資料庫設計的一種順延,和設計是相輔相成的。資料庫的優化實際上從設計、資料庫的安裝就已經開始了,我們不應該就sql語句的效率孤立的談論資料庫的優化問題。實際上很多資料庫優化的經驗,在設計的時候就必須要考慮。
本文首先談了一下和效能優化有關的基本概念,之後分六個方面詳細討論了資料庫優化的方法、手段。在資料庫的監控部分講述了為什麼?什麼時候?如何監控資料庫,並給出了一些可以直接使用的簡單sql,用來直接分析某些方面的問題。從始至終,貫穿了乙個實際的例子幫助讀者能更好的理解有關理論。由於使用了多個工具參與優化工作,文中對每種工具的使用技巧做了簡單提示。本文用到的例子是作者前不久遇到的乙個專案,作業系統是digital es20(true64unix),硬體配置為 520m記憶體,單cpu,單scsi硬碟。這裡只提一下大概的效能和功能要求:系統要求能在短時間內,匯入5、6百萬條的記錄、部分資料需要手工錄入。錄入的記錄進行處理後,被處理後產生各種報表,並且報表很可能發生變化。本系統在使用了一段時間後,發現效能嚴重下降,生成報表和資料匯入都需要很長時間,通過優化將響應控制在了可以忍受的範圍。
資料庫是否高效的乙個重要指標就是響應時間,響應時間短,查詢就可以使用更少的時間,所以響應時間短,反應速度快是高效率的乙個表現,這裡有乙個統計的資料。
ø 1/10秒是使用者認為系統能夠立即反應的極限
ø 1 秒是使用者覺得沒有被中斷的極限
ø 10秒是使用者能將注意力繼續集中在與計算機的對話上的時間極限
引用自jakob nielsen 的「usability engineering」第五章(morgan kaufmann, san francisco出版)
簡單的說,資料庫優化就是要縮短系統的響應時間。
資料庫不是靜止不動的,應用程式的螺旋式展開,資料庫的規模的不斷增大,使用者數目的不斷增多,最終將會導致響應時間的增加。雖然期間經過硬體的公升級和資料庫的優化,可以降低響應時間,但是在整個產品週期內,響應時間是會週期性展開的,有乙個總體的發展趨勢.
在資料庫的設計階段,就應該估算資料庫的增長率,並作為系統硬體引數、記憶體引數、資料庫空間配置引數、環境引數設定的依據。在資料庫的優化階段,可以通過對資料庫的監控來驗證和調整我們的估計,並適當改變引數和調整sql,來控制系統的響應時間。
不同的業務特點增長率是不同的,根據在應用中的作用,資料庫表基本上可以分為
(1)
(3)資料表(事務表):增長的主要因素,並且不穩定
(4)臨時/介面表:臨時使用,之後被刪除
具體優化方案請看後文。
oracle效能優化簡介
最近這段時間剛做了一項效能優化的工作,根據一周的statspack報告,寫了乙個優化方案。一 系統現有的主要效能問題 從最近一周比較典型的statspack報告來看,系統中主要的等待事件如下 top 5 timed events event waits time s total ela time c...
ORACLE效能優化 一
關鍵字 oracel sql performance tuning 出處 1.選用適合的oracle優化器 oracle的優化器共有3種 a.rule 基於規則 b.cost 基於成本 c.choose 選擇性 設定預設的優化器,可以通過對init.ora檔案中optimizer mode引數的各種...
Oracle效能優化一
客戶對產品的依賴性越強,對產品效能差的忍耐性越低。原則 盡可能從小範圍分析問題 sql層 工具 執行計畫 10053,10046 會話層 最有用的最靠譜,用的最多的 v session,v sesstat,v session wait,v sql,v lock,sql trace 系統層awr st...