Oracle資料庫及應用程式最佳化(轉)
摘 要:本文對ORACLE資料庫及ORACLE應用程式的最佳化,進行了全面的分析與研究,並提出了自己的一些建議。
關 鍵 詞:ORACLE,最佳化,資料庫,SQL
1.引言
隨著資訊化時代的到來,人們開始廣泛地使用資料庫技術對大量而複雜的資訊進行科學高效的管理。在資料庫領域中的各種應用軟體大量湧現,有Visual Foxpro,Power Builder等等,但其中ORACLE是這個領域中最優秀也是最流行的大型資料庫應用軟體。本文就在ORACAL中如何最佳化資料庫及其應用程式進行了研究。
2.最佳化資料庫
2.1 最佳化設定控制檔案的個數,位置及其備份
建議CONTROL_FILE初始化引數中指定多個檔案應大於2,並將控制檔案映象到不同位置,並要把這些控制檔案備份到安全的磁碟中。
2.2最佳化設計表空間,資料檔案的大小及位置
2.2.1設計表空間
儘量把同一時間對磁碟的讀寫操作分散開,如對一個表中資料進行更新時,資料庫將同時去讀該表中的資料和該表上的索引資訊,如果把表的資料資訊和索引資訊都放在同一個資料檔案中,則資料庫的速度將會變慢。最好是把資料資訊和索引資訊分別放在不同磁碟的兩個資料檔案中,此時資料庫對磁碟的讀寫操作將分散在兩個磁碟上,速度將得到顯著提高。因此在設計資料庫的表空間和資料檔案時,首先給表和表的索引分別建立兩個表空間(存放使用者資料的資料表空間和存放表索引的索引表空間)。另外,還根據該系統的資料量的大小及系統中的資料的性質不同,再考慮建立幾個資料表空間或者給資料表空間新增幾個資料檔案。
2.2.2設計資料檔案的大小
把記錄大小相當的表放在同一個表空間中,這時一個表空間的儲存引數設定,可以保證表中的記錄都放在一個範圍中,避免了一條記錄跨範圍存放,可以明顯資料庫的效能。
2.2.3設計資料檔案的位置
為了避免磁碟的I/O操作衝突,應把資料檔案建立在不同位置。
2.3最佳化設計重演日誌檔案
2.3.1 重演日誌檔案的大小
由於資料庫在利用重演日誌檔案時是迴圈使用它們的,而且當LGWR程式在兩個日誌檔案切換時,將自動產生一個檢測點,所以重演日誌檔案的大小會直接影響到檢測點出現的頻率。而由於在資料庫檢測點時,對使用者而言,資料庫的速度會受影響,所以檢測點的出現頻率大,或者檢測點正好出現在資料庫處理資料高峰期,將會極大影響資料庫的效能。因此,重演日誌檔案的大小設計,應考慮檢測點出現的頻率以及檢測點應避開資料庫處理資料的高峰期。
2.3.2 重演日誌檔案組的個數
在ARCHIVELOG模式下時,適當增加重演日誌檔案組的個數,可以降低資料庫存檔日誌檔案的頻率。
2.3.3 重演日誌檔案的存檔
應把重演日誌檔案的存檔之處設定在磁碟讀寫更快的物理裝置上。這樣可以減少日誌檔案的存檔時間。
2.4 回滾段的最佳化設計
2.4.1 回滾段數目的設計
要考慮資料庫需要支援的併發事務的數目,因為每個回滾段有其所能支援的最大事務數,如果回滾段數目不夠多,則有些新事務被迫要等待,將影響資料庫的效能。
2.4.2 回滾段大小的設計
要考慮該回滾段能容納資料庫可能的最大事務的回滾項數。
2.5 最佳化資料庫使用的記憶體配置
要調整資料庫的高速緩衝區,共享池、重演日誌緩衝區和程式全域性區的大小平衡問題。
3.最佳化應用程式
3.1 採取統一的SQL程式
因為ORACLE在執行SQL文時,首先將當前要執行的SQL文與公共區域中儲存的先前執行過的SQL文進行比較,SQL文相同時,就會跳過當前要執行的SQL文的解析處理,這樣透過減少解析次數就加快SQL文的執行速度。
3.2 選取合適的SQL程式碼
在進行資料庫操作時,同一結果可以用很多方法來實現。我們應當選取合適的SQL程式碼,使其更容易明瞭,並且執行速度更快。
3.3 明確列名
使用SELECT取得的列名一定要明確指定,並且應當使抽出的記錄要儘量少。用SORT等的場合,因為ORACLE將必要的列的值放到WORK領域,因此減少列數也就節約了I/O回數。
3.4 注意結合索引的順序
由於列的順序不同而導致索引的作用效果不同。例如:(AGE,ADDRESS)順序的結合索引。
WHERE AGE=28 AND ADDRESS='BEI JING' &結合索引有效
WHERE AGE=28 &結合索引有效
WHERE ADDRESS='BEI JING' &結全索引無效
3.5 注意WHERE的使用
3.5.1 索引列不要使用函式
由於索引列一旦使用了函式,索引就會變無效,因此在能用索引的情況下,儘量改變程式來利用索引。如:
WHERE SUBSTR(TELNO,2,2)='88'改為WHERE TELNO LIKE '88%'較好。
3.5.2 索引列不要使用NOT
由於索引列一旦使用不等於,索引就會變得無效,最後導致速度變慢。
3.5.3 不要用NULL
如果用了NULL,索引就會無效,變成全表檢索,影響處理速度。
3.5.4 不要對索引列進行計算
如果對索引列進行計算,索引就會無效,也後導致速度變慢。
4.結束語
本文所提出的最佳化方法,能夠起到提高ORACLE資料庫效能以及提高ORACLE應用程式執行效率的作用。這僅是個人在實際工作中的經驗總結,希望能夠對廣大同行起到一定幫助作用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-954212/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 非Access資料庫在VB的程式設計及應用 (轉)資料庫程式設計
- 最佳化Oracle停機時間及資料庫恢復(轉)Oracle資料庫
- oracle資料庫資料字典應用Oracle資料庫
- Oracle資料庫效能最佳化技術(轉)Oracle資料庫
- 大型網站資料庫及資料訪問最佳化(轉)網站資料庫
- [轉載]Oracle資料庫應用系統調優方法Oracle資料庫
- Oracle資料庫效能最佳化技術(轉載)Oracle資料庫
- 圖資料庫及應用場景資料庫
- Oracle效能最佳化之應用最佳化(轉)Oracle
- 應用程式的資料庫從Sql Server遷移到Oracle資料庫SQLServerOracle
- Oracle資料庫SCN號的應用Oracle資料庫
- Oracle資料庫提高命中率及相關最佳化Oracle資料庫
- 最佳化調整Oracle 8i資料庫(轉)Oracle資料庫
- HTAP資料庫及應用場景分析資料庫
- kylix 資料庫應用簡介 (轉)資料庫
- oracle資料庫最佳化基礎Oracle資料庫
- 分散式資料庫排序及最佳化分散式資料庫排序
- [轉]ORACLE資料庫管理員應做的事Oracle資料庫
- 【效能最佳化】ORACLE資料庫效能最佳化概述Oracle資料庫
- Oracle資料庫索引使用及索引失效總結 轉Oracle資料庫索引
- Go Web 程式設計--應用資料庫GoWeb程式設計資料庫
- Oracle資料庫學習應用:經驗分享Oracle資料庫
- 靜默建立oracle資料庫及克隆資料庫Oracle資料庫
- 淺談資料庫防火牆技術及應用資料庫防火牆
- 資料庫中的XML應用例項 (轉)資料庫XML
- 最佳化J2ME應用程式 (轉)
- 紹Oracle資料庫的最佳化之資料庫磁碟I/OOracle資料庫
- oracle資料庫巡檢最佳化-快速定位資料庫瓶頸Oracle資料庫
- 【轉】設定Qt應用程式圖示及應用程式名QT
- 應用適配資料庫還是資料庫適配應用資料庫
- oracle利用中游標取資料庫的結果集應用例項(轉)Oracle資料庫
- Oracle資料庫資料物件分析(轉)Oracle資料庫物件
- 資料庫應用管理資料庫
- Oracle資料庫DBA日常Sql列表及常用檢視(轉)Oracle資料庫SQL
- Oracle資料庫的備份及恢復策略研究(轉)Oracle資料庫
- Oracle資料庫基本知識及問題解決(轉)Oracle資料庫
- sqlite輕量型資料庫的介紹及應用SQLite資料庫
- 實用的資料庫檢查程式 (1) (轉)資料庫