成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle數據庫在設計開發階段的性能優化策略

數據庫 Oracle
以下的文章主要介紹的是Oracle數據庫在設計開發階段性能優化策略,以下就是文章的具體內容的描述,希望你會有所收獲。

Oracle數據庫就現在而言是使用率最為廣泛的大型數據庫管理系統,只有提高Oracle數據庫系統的相關運行效率,才能使整個計算機的信息系統高效運轉的前提和保證。影響Oracle數據庫應用系統性能的因素很多,既有軟件方面的因素,也包括數據運行的硬件環境、網絡環境、數據庫管理和維護方面的因素等。

數據庫系統設計開發階段是Oracle應用優化的最佳階段,也是主動優化階段,能達到以最小成本獲得最大性能增益的目的。通過對其邏輯存儲結構和物理存儲結構設計進行優化,使之在滿足需求條件下,時空開銷性能最佳,可以解決數據庫系統運行過程中性能的漸進性下降或性能突降等問題,以保證系統運行的優良性能。

Oracle數據庫的邏輯結構和物理結構

Oracle 數據庫的邏輯結構是由一些數據庫對象組成,如Oracle數據庫表空間、表、索引、段、視圖、存儲過程、觸發器等。數據庫的邏輯存儲結構(表空間等)決定了數據庫的物理空間是如何被使用的,數據庫對象如表、索引等分布在各個表空間中。

Oracle 數據庫的物理結構從操作系統一級查看,是由一個個的文件組成,從物理上可劃分為:數據文件、日志文件、控制文件和參數文件。數據文件中存放了所有的數據信 息; 日志文件存放數據庫運行期間產生的日志信息,它被重復覆蓋使用,若不采用歸檔方式的話,已被覆蓋的日志信息將無法恢復;

控制文件記錄了整個數據庫的關 鍵結構信息,它若被破壞,整個數據庫將無法工作和恢復; 參數文件中設置了很多Oracle 數據庫的配置參數,當數據庫啟動時,會讀取這些信息。

邏輯結構的優化

邏輯結構優化用通俗的話來說就是通過增加、減少或調整邏輯結構來提高應用的效率,下面通過對基本表的設計及索引、聚簇的討論來分析ORACLE邏輯結構的優化。

1、基本表擴展

數據庫性能包括存儲空間需求量的大小和查詢響應時間的長短兩個方面。為了優化數據庫性能,需要對數據庫中的表進行規范化。一般來說,邏輯數據庫 設計滿足第三范式的表結構容易維護且基本滿足實際應用的要求。

所以,實際應用中一般都按照第三范式的標準進行規范化,從而保證了Oracle數據庫的一致性和完整性, 設計人員往往會設計過多的表間關聯,以盡可能地降低數據冗余。但在實際應用中這種做法有時不利于系統運行性能的優化:如過程從多表獲取數據時引發大量的連接操作,在需要部分數據時要掃描整個表等,這都消耗了磁盤的I/O 和CPU 時間。

為解決這一問題,在設計表時應同時考慮對某些表進行反規范化,方法有以下幾種:一是分割表。分割表可分為水平分割表和垂直分割表兩種:水平分割是按照行將一個表分割為多個表,這可以提高每個表的查詢速度,但查詢、更新時要選擇不同的表,統計時要匯總多個表,因此應用程序會更復雜。

垂直分割是對于 一個列很多的表,若某些列的訪問頻率遠遠高于其它列,就可以將主鍵和這些列作為一個表,將主鍵和其它列作為另外一個表。通過減少列的寬度,增加了每個數據頁的行數,一次I/O就可以掃描更多的行(同理于內存的頁式訪問),從而提高了訪問每一個表的速度。

但是由于造成了多表連接,所以應該在同時查詢或更新不同分割表中的列的情況比較 少的情況下使用。二是保留冗余列。當兩個或多個表在查詢中經常需要連接時,可以在其中一個表上增加若干冗余的列,以避免表之間的連接過于頻繁,一般在冗余列的數據不經常變動的情況下使用。三是增加派生列。

派生列是由表中的其它多個列的計算所得,增加派生列可以減少統計運算,在數據匯總時可以大大縮短運算時間(通過周期性結轉豈不是更好?)。

因此,在數據庫的設計中,數據應當按兩種類別進行組織:頻繁訪問的數據和頻繁修改的數據。對于頻繁訪問但是不頻繁修改的數據,內部設計應當物理不規范化。對于頻繁修改但并不頻繁訪問的數據,內部設計應當物理規范化。有時還需將規范化的表作為邏輯Oracle數據庫設計的基礎,然后再根據整個應用系統的需要, 物理地非規范化數據。

規范與反規范都是建立在實際的操作基礎之上的約束,脫離了實際兩者都沒有意義。只有把兩者合理地結合在一起,才能相互補充,發揮各自的優點。

2、索引和聚簇

創建索引是提高檢索效率最有效的方法之一,索引把表中的邏輯值映射到安全的RowID,能快速定位數據的物理地址,可以大大加快數據庫的查詢速度,一個建有合理索引的數據庫應用系統可能比一個沒有建立索引的數據庫應用系統效率高幾十倍,但并不是索引越多越好,在那些經常需要修改的數據列上建立索 引,將導致索引B*樹的不斷重組,造成系統性能的下降和存儲空間的浪費。

對于一個大型表建立的索引,有時并不能改善數據查詢速度,反而會影響整個Oracle數據庫的性能。這主要是和SGA的數據管理方式有關,Oracle在進行數據塊高速緩存管理時,索引數據比普通數據具有更高的駐留權限,在進行空間競爭時, Oracle會先移出普通數據。

對建有索引的大型表進行數據查詢時,索引數據可能會用完所有的數據塊緩存空間,Oracle不得不頻繁地進行磁盤讀寫來獲取數據,所以,在對一個大型表進行分區之后,可以根據相應的分區建立分區索引。

Oracle提供了另一種方法來提高查詢速度,就是聚簇(Cluster)。所謂聚簇,簡單地說就是把幾個表放在一起,按一定公共屬性混合存放。聚簇根據共同碼值將多個表的數據存儲在同一個Oracle塊中,這時檢索一組Oracle塊就同時得到兩個表的數據,這樣就可以減少需要存儲的Oracle塊,從而提高應用程序的性能。

對于邏輯結構的優化,還應將表數據和索引數據分開表空間存儲,分別使用獨立的表空間。因為如果將表數據和索引數據放在一起,表數據的I/O操作和索引的I/O操作將產生影響系統性能的I/O競爭,降低系統的響應效率。將表數據和索引數據存放在不同的表空間中,并在物理層面將這兩個表空間的數據文件放在不同的物理磁盤上,就可以避免這種競爭了。
 

文章出自: http://www.programbbs.com/doc/3414.htm

【編輯推薦】

  1. Oracle數據庫的四種基本的啟動方式
  2. 如何配置Oracle數據庫
  3. 怎樣恢復Oracle重做日志丟失的竅門
  4. Oracle 11g五大獨特特能的描述
  5. 發揮Oracle數據庫數據管理功能的方法
責任編輯:佚名 來源: programbbs
相關推薦

2010-05-05 11:48:27

Oracle設計開發階

2010-11-15 16:13:24

Oracle數據庫性能

2010-04-21 14:00:48

Oracle數據庫

2011-05-20 10:30:20

ORACLE數據庫性能優化

2011-05-18 09:39:19

Oracle數據庫性能優化

2010-04-21 13:52:17

Oracle數據庫性能

2010-04-09 15:08:17

Oracle 數據庫性

2010-05-10 15:50:39

Oracle數據庫性能

2010-04-27 16:41:07

Oracle性能

2024-03-14 10:10:03

MySQL優化事務

2009-05-11 14:19:55

Oracle性能優化數據庫

2010-06-17 12:59:07

Oracle

2024-07-23 08:08:18

2012-11-21 17:35:21

Oracle技術嘉年華

2013-09-17 10:32:08

Android性能優化數據庫

2010-05-06 12:44:47

Oracle數據庫

2009-03-06 08:46:14

索引Oracle

2020-02-25 23:55:07

數據庫工具技術

2010-04-13 17:35:50

Oracle數據庫性能

2011-07-22 09:58:18

Oracle數據庫優化策略
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美激情一区二区三级高清视频 | 久久一区二区视频 | h视频免费观看 | 久久久久国产一区二区三区 | 第四色狠狠 | 久久精点视频 | 久久99精品久久久久婷婷 | 欧美精品在线免费观看 | 另类专区成人 | 久久久精彩视频 | av网站在线免费观看 | 久久精品中文字幕 | 国产高清区 | 精品国产伦一区二区三区观看说明 | 天堂av中文在线 | 国产在线一区二区三区 | 岛国av一区二区三区 | 久久久精品一区二区三区四季av | 久久精品亚洲一区 | 精品久久一区 | 亚洲精品乱码久久久久久按摩观 | 午夜一区二区三区在线观看 | 亚洲欧美日韩精品久久亚洲区 | h视频免费在线观看 | 日韩免费在线视频 | 亚洲欧美在线免费观看 | 香蕉久久久| 欧美黄色片 | 91在线网站 | 成人一级片在线观看 | 亚洲激情一级片 | 精品久久久久久久久久久 | 国产这里只有精品 | 欧美黄视频 | 欧美视频偷拍 | 国产高清免费在线 | 久久久久久久久国产 | 国产精品久久久久久av公交车 | 欧美三区| 激情五月综合 | 久草福利|