程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> 大型ORACLE數據庫優化設計方案

大型ORACLE數據庫優化設計方案

編輯:關於Oracle數據庫

  對於ORACLE數據庫的數據存取,主要有四個不同的調整級別,第一級調整是操作系統級包括硬件平台,第二級調整是ORACLE RDBMS級的調整,第三級是數據庫設計級的調整,最後一個調整級是SQL級。通常依此四級調整級別對數據庫進行調整、優化,數據庫的整體性能會得到很大的改善。下面從九個不同方面介紹ORACLE數據庫優化設計方案。

  一.數據庫優化自由結構OFA(Optimal flexible Architecture)

  數據庫的邏輯配置對數據庫性能有很大的影響,為此,ORACLE公司對表空間設計提出了一種優化結構OFA。使用這種結構進行設計會大大簡化物理設計中的數據管理。優化自由結構OFA,簡單地講就是在數據庫中可以高效自由地分布邏輯數據對象,因此首先要對數據庫中的邏輯對象根據他們的使用方式和物理結構對數據庫的影響來進行分類,這種分類包括將系統數據和用戶數據分開、一般數據和索引數據分開、低活動表和高活動表分開等等。

  數據庫邏輯設計的結果應當符合下面的准則:(1)把以同樣方式使用的段類型存儲在一起;(2)按照標准使用來設計系統;(3)存在用於例外的分離區域;(4)最小化表空間沖突;(5)將數據字典分離。

  二、充分利用系統全局區域SGA(SYSTEM GLOBAL AREA)

  SGA是oracle數據庫的心髒。用戶的進程對這個內存區發送事務,並且以這裡作為高速緩存讀取命中的數據,以實現加速的目的。正確的SGA大小對數據庫的性能至關重要。SGA包括以下幾個部分:

  1、數據塊緩沖區(data block buffer cache)是SGA中的一塊高速緩存,占整個數據庫大小的1%-2%,用來存儲從數據庫重讀取的數據塊(表、索引、簇等),因此采用least recently used (LRU,最近最少使用)的方法進行空間管理。

  2、字典緩沖區。該緩沖區內的信息包括用戶賬號數據、數據文件名、段名、盤區位置、表說明和權限,它也采用LRU方式管理。

  3、重做日志緩沖區。該緩沖區保存為數據庫恢復過程中用於前滾操作。

  4、SQL共享池。保存執行計劃和運行數據庫的SQL語句的語法分析樹。也采用LRU算法管理。如果設置過小,語句將被連續不斷地再裝入到庫緩存,影響系統性能。

  另外,SGA還包括大池、JAVA池、多緩沖池。但是主要是由上面4種緩沖區構成。對這些內存緩沖區的合理設置,可以大大加快數據查詢速度,一個足夠大的內存區可以把絕大多數數據存儲在內存中,只有那些不怎麼頻繁使用的數據,才從磁盤讀取,這樣就可以大大提高內存區的命中率。

  三、規范與反規范設計數據庫

  1、規范化

  范式是符合某一級別的關系模式的集合,根據約束條件的不同,一般有1NF、2NF、3NF三種范式。規范化理論是圍繞這些范式而建立的。規范化的基本思想是逐步消除數據依賴中不合適的部分,使模式中的各關系模式達到某種程度的“分離”,即采用“一事一地”的模式設計原則,因此,所謂規范化實質上就是概念的單一化。數據庫中數據規范化的優點是減少了數據冗余,節約了存儲空間,相應邏輯和物理的I/O次數減少,同時加快了增、刪、改的速度。但是一個完全規范化的設計並不總能生成最優的性能,因為對數據庫查詢通常需要更多的連接操作,從而影響到查詢的速度。故有時為了提高某些查詢或應用的性能而有意破壞規范規則,即反規范化。

  2、反規范化

  ⑴反規范的必要性

  是否規范化的程度越高越好呢?答案是否定的,應根據實際需要來決定,因為“分離”越深,產生的關系越多,結構越復雜。關系越多,連接操作越頻繁,而連接操作是最費時間的,在數據庫設計中特別對以查詢為主的數據庫設計來說,頻繁的連接會嚴重影響查詢速度。所以,在數據庫的設計過程中有時故意保留非規范化約束,或者規范化以後又反規范,這樣做通常是為了改進數據庫的查詢性能,加快數據庫系統的響應速度。

  • 首頁
  • 上一頁
  • 1
  • 2
  • 3
  • 4
  • 下一頁
  • 尾頁
  • 共4頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved