1.優化應用程式和業務邏輯,這個是最重要的。
2.資料庫設計階段正規化和反正規化的靈活應用。一般情況下,對於頻繁訪問但是不頻繁修改的資料,內部設計應當物理不規範化;對於頻繁修改但並不頻繁訪問的資料,內部設計應當物理規範化。
3.充分利用記憶體,優化sga、pga等(11g已經實現了sga+pga自動化,但有的時候仍然需要手動進行調整),適當的將小表keep到cache中。
4.優化sql語句
1)減少對資料庫的查詢次數,即減少對系統資源的請求,使用快照和顯形圖等分布式資料庫物件可以減少對資料庫的查詢次數。
2)盡量使用相同的或非常類似的sql語句進行查詢,這樣不僅充分利用sql共享池中的已經分析的語法樹,要查詢的資料在sga中命中的可能性也會大大增加。
3)限制動態sql的使用,雖然動態sql很好用,但是即使在sql共享池中有乙個完全相同的查詢值,動態sql也會重新進行語法分析。
4)避免不帶任何條件的sql語句的執行。沒有任何條件的sql語句在執行時,通常要進行fts,資料庫先定位乙個資料塊,然後按順序依次查詢其它資料,對於rqlnnkrxkt大型表這將 是乙個漫長的過程。
5)如果對有些表中的資料有約束,最好在建表的sql語句用描述完整性來實現,而不是用sql程式中實現。
6)可以通過取消自動提交模式,將sql語句匯集一組執行後集中提交,程式還可以通過顯式地用commit和rollbacl進行提交和回滾該事務。
7)檢索大量資料時費時很長,設定行預取數則能改善系統的工作表現,設定乙個最大值,當sql語句返回行超過該值,數值庫暫時停止執行,除非使用者發出新的指令,開始組織並顯示資料,而不是讓使用者繼續等待。
5.優化io,將不同的資料檔案、控制檔案、日誌檔案放在不同的磁碟,表和索引放程式設計客棧在不同的表空間,設定合適的block大小,設定非同步io等。
6.適當建立唯讀表空間,減少資料塊頭的更新和資料庫故障的發生。
7.表設計優化
1)分割槽
2)壓縮
3)建立合適的索引
4)設定合適的pctfree,減少行連線和行遷移
5)設定合適的storage,控制表碎片
6)其他等
8.充分利用系統cpu資源,使用parallel query option(pqo,並行查詢選擇)方式進行資料查詢,使用pqo方式不僅可以在多個cpu間分配sql語句的請求處理,當所查詢的資料處於不同的磁碟時,乙個個獨立的程序可以同時進行資料讀取。
9.優化資料庫連線
1)使用直接的ole db資料庫連線方式。
通過ado可以使用兩種方式連線資料庫,一種是傳統的odbc方式,一種是ole db方式。ado是建立在ole db技術上的,為了支援odbc,必須建立相應的ole db到odbc的呼叫轉換,而使用直接的ole db方式則不需轉換,從而提高處理速度。
2)使用connection pool機制
在資料庫處理中,資源花銷最大的是建立資料庫連線,而且使用者還會有乙個較長的連線等待時間。解決的辦法就是復用現有的connection,也就是使用connection pool物件機制。
connection pool的原理是:iis+asp體系中維持了乙個連線緩衝池,這樣,當下乙個使用者訪問時,直接在連線緩衝池中取得乙個資料庫連線,而不需重新連線資料庫,因此可以大大地提高系統的響應速度。
10.充分利用資料的後台處理方案減少網路流量
1)合理建立臨時表或檢視
所謂建立臨時表或檢視,就是根據需要在資料庫基礎上建立新錶或檢視,對於多表關聯後再查詢資訊的可建新表,對於單錶查詢的可建立檢視,這樣可充分利用資料庫的容量大、可擴充性強等特點,所有條件的判斷、數值計算統計均可在資料庫伺服器後台統一處理後追加到臨時表中,形成資料結果的過程可用資料庫的程式設計客棧過程或函式來實現。
2)資料庫打包技術的充分利用
利用資料庫描述語言編寫資料庫的過程或函式,然後把過程或函式打成包在資料庫後台統一執行包即可。
3)資料複製、快照、檢視,遠端過程呼叫技術的運用
資料複製,即將資料一次複製到本地,這樣以後的查詢就使用本地資料,但是只適合那些變化不大的資料。使用快照也可以在分布式資料庫之間動態複製資料,定義快照的自動重新整理時間或手工重新整理,以保證資料的引用參照完整性。呼叫遠端過程也會大大減少因頻繁的sql語句呼叫而帶來的網路擁擠。
11.實施系統資源管理分配計畫
oracle提供了database resource manager(drm,資料庫資源管理器)來控制使用者的資源分配,dba可以用rqlnnkrxkt它分配使用者類和作業類的系統資源百分比。在乙個oldp系統中,可給聯機使用者分配75%的cpu資源,剩下的25%留給批使用者。另外,還可以進行cpu的多級分配。除了進行cpu資源分配外,drm還可以對資源使用者組執行並行操作的限制。
本文標題: oracle 資料庫優化實戰心得總結
本文位址: /shujuku/oracle/96263.html
Oracle資料庫優化
1.使用索引 當sql中含有max min order by 時增速明顯。建立索引應用於join where order by排序的字段上,避免建立在含有大量重複的字段上,例如某個具有列舉型別的字段,避免索引所在的字段含有 null 值 索引會降低 insert update 的速率 2.選取最適用...
mysql資料庫優化總結 心得
1.優化你的mysql查詢快取 在mysql伺服器上進行查詢,可以啟用高速查詢快取。讓資料庫引擎在後台悄悄的處理是提高效能的最有效方法之一。當同乙個查詢被執行多次時,如果結果是從快取中提取,那是相當快的。但主要的問題是,它是那麼容易被隱藏起來以至於我們大多數程式設計師會忽略它。在有些處理任務中,我們...
優化Oracle資料庫效能
優化策略 為了保證oracle資料庫執行在最佳的效能狀態下,在資訊系統開發之前就應該考慮資料庫的優化策略。優化策略一般包括伺服器作業系統引數調整 資料庫引數調整 網路效能調整 應用程式sql語句分析及設計等幾個方面,其中應用程式的分析與設計是在資訊系統開發 分析評價oracle資料庫效能主要有資料庫...