日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Oracle 數(shù)據(jù)庫(kù)系統(tǒng)的物理結(jié)構(gòu)詳細(xì)分析

本文主要介紹的是Oracle數(shù)據(jù)庫(kù)在設(shè)計(jì)開(kāi)發(fā)階段的相關(guān)的性能優(yōu)化策略以及我們通過(guò)對(duì)Oracle 數(shù)據(jù)庫(kù)系統(tǒng)的物理結(jié)構(gòu)與相關(guān)的邏輯結(jié)構(gòu)的分析,闡述了在Oralce數(shù)據(jù)庫(kù)設(shè)計(jì)開(kāi)發(fā)階段性能優(yōu)化的一些策略和方法。

創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)同德,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18980820575

Oracle是目前使用最為廣泛的大型數(shù)據(jù)庫(kù)管理系統(tǒng),提高Oracle數(shù)據(jù)庫(kù)系統(tǒng)的運(yùn)行效率,是整個(gè)計(jì)算機(jī)信息系統(tǒng)高效運(yùn)轉(zhuǎn)的前提和保證。影 響Oracle數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)性能的因素很多,既有軟件方面的因素,也包括數(shù)據(jù)運(yùn)行的硬件環(huán)境、網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)庫(kù)管理和維護(hù)方面的因素等。

數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì) 開(kāi)發(fā)階段是Oracle應(yīng)用優(yōu)化的***階段,也是主動(dòng)優(yōu)化階段,能達(dá)到以最小成本獲得***性能增益的目的。通過(guò)對(duì)其邏輯存儲(chǔ)結(jié)構(gòu)和物理存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)進(jìn)行優(yōu) 化,使之在滿足需求條件下,時(shí)空開(kāi)銷性能***,可以解決數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行過(guò)程中性能的漸進(jìn)性下降或性能突降等問(wèn)題,以保證系統(tǒng)運(yùn)行的優(yōu)良性能。

Oracle數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)

Oracle 數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)是由一些數(shù)據(jù)庫(kù)對(duì)象組成,如Oracle 數(shù)據(jù)庫(kù)表空間、表、索引、段、視圖、存儲(chǔ)過(guò)程、觸發(fā)器等。數(shù)據(jù)庫(kù)的邏輯存儲(chǔ)結(jié)構(gòu)(表空間等)決定了數(shù)據(jù)庫(kù)的物理空間是如何被使用的,數(shù)據(jù)庫(kù)對(duì)象如表、索引等分布在各個(gè)表空間中。

Oracle 數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)從操作系統(tǒng)一級(jí)查看,是由一個(gè)個(gè)的文件組成,從物理上可劃分為:數(shù)據(jù)文件、日志文件、控制文件和參數(shù)文件。

數(shù)據(jù)文件中存放了所有的數(shù)據(jù)信 息;日志文件存放數(shù)據(jù)庫(kù)運(yùn)行期間產(chǎn)生的日志信息,它被重復(fù)覆蓋使用,若不采用歸檔方式的話,已被覆蓋的日志信息將無(wú)法恢復(fù);控制文件記錄了整個(gè)數(shù)據(jù)庫(kù)的關(guān) 鍵結(jié)構(gòu)信息,它若被破壞,整個(gè)數(shù)據(jù)庫(kù)將無(wú)法工作和恢復(fù);參數(shù)文件中設(shè)置了很多Oracle 數(shù)據(jù)庫(kù)的配置參數(shù),當(dāng)數(shù)據(jù)庫(kù)啟動(dòng)時(shí),會(huì)讀取這些信息。

邏輯結(jié)構(gòu)的優(yōu)化

邏輯結(jié)構(gòu)優(yōu)化用通俗的話來(lái)說(shuō)就是通過(guò)增加、減少或調(diào)整邏輯結(jié)構(gòu)來(lái)提高應(yīng)用的效率,下面通過(guò)對(duì)基本表的設(shè)計(jì)及索引、聚簇的討論來(lái)分析ORACLE邏輯結(jié)構(gòu)的優(yōu)化。

1、基本表擴(kuò)展

數(shù)據(jù)庫(kù)性能包括存儲(chǔ)空間需求量的大小和查詢響應(yīng)時(shí)間的長(zhǎng)短兩個(gè)方面。為了優(yōu)化Oracle 數(shù)據(jù)庫(kù)性能,需要對(duì)數(shù)據(jù)庫(kù)中的表進(jìn)行規(guī)范化。一般來(lái)說(shuō),邏輯數(shù)據(jù)庫(kù) 設(shè)計(jì)滿足第三范式的表結(jié)構(gòu)容易維護(hù)且基本滿足實(shí)際應(yīng)用的要求。

所以,實(shí)際應(yīng)用中一般都按照第三范式的標(biāo)準(zhǔn)進(jìn)行規(guī)范化,從而保證了數(shù)據(jù)庫(kù)的一致性和完整性, 設(shè)計(jì)人員往往會(huì)設(shè)計(jì)過(guò)多的表間關(guān)聯(lián),以盡可能地降低數(shù)據(jù)冗余。但在實(shí)際應(yīng)用中這種做法有時(shí)不利于系統(tǒng)運(yùn)行性能的優(yōu)化:如過(guò)程從多表獲取數(shù)據(jù)時(shí)引發(fā)大量的連 接操作,在需要部分?jǐn)?shù)據(jù)時(shí)要掃描整個(gè)表等,這都消耗了磁盤的I/O 和CPU 時(shí)間。

為解決這一問(wèn)題,在設(shè)計(jì)表時(shí)應(yīng)同時(shí)考慮對(duì)某些表進(jìn)行反規(guī)范化,方法有以下幾種:一是分割表。分割表可分為水平分割表和垂直分割表兩種:水平分割 是按照行將一個(gè)表分割為多個(gè)表,這可以提高每個(gè)表的查詢速度,但查詢、更新時(shí)要選擇不同的表,統(tǒng)計(jì)時(shí)要匯總多個(gè)表,因此應(yīng)用程序會(huì)更復(fù)雜。

垂直分割是對(duì)于 一個(gè)列很多的表,若某些列的訪問(wèn)頻率遠(yuǎn)遠(yuǎn)高于其它列,就可以將主鍵和這些列作為一個(gè)表,將主鍵和其它列作為另外一個(gè)表。通過(guò)減少列的寬度,增加了每個(gè)數(shù)據(jù) 頁(yè)的行數(shù),一次I/O就可以掃描更多的行,從而提高了訪問(wèn)每一個(gè)表的速度。

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

派生列是由表中的其它多個(gè)列的計(jì)算所得,增加派生列可以減少統(tǒng)計(jì)運(yùn)算,在數(shù)據(jù)匯總時(shí)可以大大縮短運(yùn)算時(shí) 間。

因此,在數(shù)據(jù)庫(kù)的設(shè)計(jì)中,數(shù)據(jù)應(yīng)當(dāng)按兩種類別進(jìn)行組織:頻繁訪問(wèn)的數(shù)據(jù)和頻繁修改的數(shù)據(jù)。對(duì)于頻繁訪問(wèn)但是不頻繁修改的數(shù)據(jù),內(nèi)部設(shè)計(jì)應(yīng)當(dāng)物理 不規(guī)范化。對(duì)于頻繁修改但并不頻繁訪問(wèn)的數(shù)據(jù),內(nèi)部設(shè)計(jì)應(yīng)當(dāng)物理規(guī)范化。

有時(shí)還需將規(guī)范化的表作為邏輯Oracle 數(shù)據(jù)庫(kù)設(shè)計(jì)的基礎(chǔ),然后再根據(jù)整個(gè)應(yīng)用系統(tǒng)的需要, 物理地非規(guī)范化數(shù)據(jù)。規(guī)范與反規(guī)范都是建立在實(shí)際的操作基礎(chǔ)之上的約束,脫離了實(shí)際兩者都沒(méi)有意義。只有把兩者合理地結(jié)合在一起,才能相互補(bǔ)充,發(fā)揮各自 的優(yōu)點(diǎn)。

2、索引和聚簇

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

對(duì)于一個(gè)大型表建立的索引,有時(shí)并不能改善數(shù)據(jù)查詢速度,反而會(huì)影響整個(gè)數(shù)據(jù)庫(kù)的 性能。這主要是和SGA的數(shù)據(jù)管理方式有關(guān),Oracle在進(jìn)行數(shù)據(jù)塊高速緩存管理時(shí),索引數(shù)據(jù)比普通數(shù)據(jù)具有更高的駐留權(quán)限,在進(jìn)行空間競(jìng)爭(zhēng)時(shí), Oracle會(huì)先移出普通數(shù)據(jù),對(duì)建有索引的大型表進(jìn)行數(shù)據(jù)查詢時(shí),索引數(shù)據(jù)可能會(huì)用完所有的數(shù)據(jù)塊緩存空間。

Oracle不得不頻繁地進(jìn)行磁盤讀寫來(lái)獲 取數(shù)據(jù),所以,在對(duì)一個(gè)大型表進(jìn)行分區(qū)之后,可以根據(jù)相應(yīng)的分區(qū)建立分區(qū)索引。

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

對(duì)于邏輯結(jié)構(gòu)的優(yōu)化,還應(yīng)將表數(shù)據(jù)和索引數(shù)據(jù)分開(kāi)表空間存儲(chǔ),分別使用獨(dú)立的表空間。因?yàn)槿绻麑⒈頂?shù)據(jù)和索引數(shù)據(jù)放在一起,表數(shù)據(jù)的I/O操作 和索引的I/O操作將產(chǎn)生影響系統(tǒng)性能的I/O競(jìng)爭(zhēng),降低系統(tǒng)的響應(yīng)效率。將表數(shù)據(jù)和索引數(shù)據(jù)存放在不同的表空間中,并在物理層面將這兩個(gè)表空間的數(shù)據(jù)文 件放在不同的物理磁盤上,就可以避免這種競(jìng)爭(zhēng)了。

物理結(jié)構(gòu)的優(yōu)化

Oracle 數(shù)據(jù)庫(kù)的數(shù)據(jù)最終是存儲(chǔ)在物理磁盤上的,對(duì)數(shù)據(jù)進(jìn)行訪問(wèn)就是對(duì)這些物理磁盤進(jìn)行讀寫,因此對(duì)于這些物理存儲(chǔ)的優(yōu)化是系統(tǒng)優(yōu)化的一個(gè)重要部分。

對(duì) 于物理存儲(chǔ)結(jié)構(gòu)優(yōu)化,主要是合理地分配邏輯結(jié)構(gòu)的物理存儲(chǔ)地址,這樣雖不能減少對(duì)物理存儲(chǔ)的讀寫次數(shù),但卻可以使這些讀寫盡量并行,減少磁盤讀寫競(jìng)爭(zhēng),從 而提高效率,也可以通過(guò)對(duì)物理存儲(chǔ)進(jìn)行精密的計(jì)算減少不必要的物理存儲(chǔ)結(jié)構(gòu)擴(kuò)充,從而提高系統(tǒng)利用率。

1、磁盤讀寫并行優(yōu)化

對(duì)于數(shù)據(jù)庫(kù)的物理讀寫,Oracle系統(tǒng)本身會(huì)進(jìn)行盡可能的并行優(yōu)化,例如在一個(gè)最簡(jiǎn)單的表檢索操作中,如果表結(jié)構(gòu)和檢索域上的索引不在一個(gè)物理結(jié)構(gòu)上,那么在檢索的過(guò)程中,對(duì)索引的檢索和對(duì)表的檢索就是并行進(jìn)行的。

2、操作并行優(yōu)化

操作并行的優(yōu)化是基于操作語(yǔ)句的統(tǒng)計(jì)結(jié)果,首先是統(tǒng)計(jì)各個(gè)表的訪問(wèn)頻率,表之間的連接頻率,根據(jù)這些數(shù)據(jù)按如下原則分配表空間和物理磁盤,減少 系統(tǒng)進(jìn)程和用戶進(jìn)程的磁盤I/O競(jìng)爭(zhēng);把需要連接的表格在表空間/物理磁盤上分開(kāi);把高頻訪問(wèn)的表格在表空間/物理磁盤上分開(kāi);把經(jīng)常需要進(jìn)行檢索的表格 的表結(jié)構(gòu)和索引在表空間/物理磁盤上分開(kāi)。

3、減少存儲(chǔ)結(jié)構(gòu)擴(kuò)展

如果應(yīng)用系統(tǒng)的數(shù)據(jù)庫(kù)比較脆弱,并在不斷地增長(zhǎng)或縮小,這樣的系統(tǒng)在非動(dòng)態(tài)變化周期內(nèi)效率合理,但是當(dāng)在動(dòng)態(tài)變化周期內(nèi)的時(shí)候,性能卻很差,這 是由于Oracle的動(dòng)態(tài)擴(kuò)展造成的。

在動(dòng)態(tài)擴(kuò)張的過(guò)程中,Oracle必須根據(jù)存儲(chǔ)的要求,在創(chuàng)建行、行變化獲取缺省值時(shí),擴(kuò)展和分配新的存儲(chǔ)空間,而 且表格的擴(kuò)展往往并不是事情的終結(jié),還可能導(dǎo)致數(shù)據(jù)文件、表空間的增長(zhǎng),這些擴(kuò)展會(huì)導(dǎo)致在線系統(tǒng)反應(yīng)緩慢。對(duì)于這樣的系統(tǒng),***的辦法就是在建立的時(shí)候預(yù) 先分配足夠的大小和合適的增長(zhǎng)幅度。

在一個(gè)對(duì)象建立的時(shí)候要根據(jù)應(yīng)用充分地計(jì)算他們的大小,然后再根據(jù)這些數(shù)據(jù)來(lái)定義對(duì)象Initial、Next和 Minextents的值,使Oracle 數(shù)據(jù)庫(kù)在物理存儲(chǔ)上和動(dòng)態(tài)增長(zhǎng)次數(shù)上達(dá)到一個(gè)比較好的平衡點(diǎn),使這些對(duì)象既不經(jīng)常發(fā)生增長(zhǎng),也不過(guò)多地占用數(shù)據(jù)庫(kù)。

文章出自: http://www.programbbs.com/doc/class10-3.htm

【編輯推薦】

  1. Oracle的實(shí)體-Oracle關(guān)系模型
  2. Oracle數(shù)據(jù)庫(kù)與DM的強(qiáng)制訪問(wèn)的不同之處
  3. Oracle數(shù)據(jù)庫(kù)和DB2取前10條記錄的實(shí)際對(duì)比
  4. 對(duì)Oracle SQL相同語(yǔ)句的解析
  5. Oracle sql 性能如何進(jìn)行調(diào)整

分享標(biāo)題:Oracle 數(shù)據(jù)庫(kù)系統(tǒng)的物理結(jié)構(gòu)詳細(xì)分析
分享路徑:http://www.5511xx.com/article/dphsepi.html