国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle數據庫及應用程序優化

2024-08-29 13:46:17
字體:
來源:轉載
供稿:網友

  摘 要:本文對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應用程序執行效率的作用。這僅是個人在實際工作中的經驗總結,希望能夠對廣大同行起到一定幫助作用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沂源县| 封开县| 绩溪县| 马鞍山市| 昌都县| 内丘县| 东城区| 获嘉县| 唐海县| 任丘市| 涿鹿县| 海伦市| 衡水市| 永平县| 定安县| 德清县| 金华市| 启东市| 卫辉市| 绍兴市| 曲麻莱县| 怀仁县| 个旧市| 古浪县| 凉城县| 翁牛特旗| 民和| 云南省| 甘孜县| 麦盖提县| 来安县| 惠东县| 马关县| 昆明市| 汉阴县| 张家港市| 广灵县| 三穗县| 武夷山市| 翁牛特旗| 宜宾县|