电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle 數(shù)據(jù)庫設(shè)計階段性能優(yōu)化策略

瀏覽:44日期:2023-11-25 10:42:06
通過對Oracle 數(shù)據(jù)庫系統(tǒng)物理結(jié)構(gòu)和邏輯結(jié)構(gòu)的分析,闡述了在Oralce數(shù)據(jù)庫設(shè)計開發(fā)階段性能優(yōu)化的一些策略和方法。 Oracle是目前使用最為廣泛的大型數(shù)據(jù)庫治理系統(tǒng),提高Oracle數(shù)據(jù)庫系統(tǒng)的運行效率,是整個計算機信息系統(tǒng)高效運轉(zhuǎn)的前提和保證。影響Oracle數(shù)據(jù)庫應(yīng)用系統(tǒng)性能的因素很多,既有軟件方面的因素,也包括數(shù)據(jù)運行的硬件環(huán)境、網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)庫治理和維護(hù)方面的因素等。數(shù)據(jù)庫系統(tǒng)設(shè)計開發(fā)階段是Oracle應(yīng)用優(yōu)化的最佳階段,也是主動優(yōu)化階段,能達(dá)到以最小成本獲得最大性能增益的目的。通過對其邏輯存儲結(jié)構(gòu)和物理存儲結(jié)構(gòu)設(shè)計進(jìn)行優(yōu)化,使之在滿足需求條件下,時空開銷性能最佳,可以解決數(shù)據(jù)庫系統(tǒng)運行過程中性能的漸進(jìn)性下降或性能突降等問題,以保證系統(tǒng)運行的優(yōu)良性能。 Oracle數(shù)據(jù)庫的邏輯結(jié)構(gòu)和物理結(jié)構(gòu) Oracle 數(shù)據(jù)庫的邏輯結(jié)構(gòu)是由一些數(shù)據(jù)庫對象組成,如數(shù)據(jù)庫表空間、表、索引、段、視圖、存儲過程、觸發(fā)器等。數(shù)據(jù)庫的邏輯存儲結(jié)構(gòu)(表空間等)決定了數(shù)據(jù)庫的物理空間是如何被使用的,數(shù)據(jù)庫對象如表、索引等分布在各個表空間中。 Oracle 數(shù)據(jù)庫的物理結(jié)構(gòu)從操作系統(tǒng)一級查看,是由一個個的文件組成,從物理上可劃分為:數(shù)據(jù)文件、日志文件、控制文件和參數(shù)文件。數(shù)據(jù)文件中存放了所有的數(shù)據(jù)信息;日志文件存放數(shù)據(jù)庫運行期間產(chǎn)生的日志信息,它被重復(fù)覆蓋使用,若不采用歸檔方式的話,已被覆蓋的日志信息將無法恢復(fù);控制文件記錄了整個數(shù)據(jù)庫的要害結(jié)構(gòu)信息,它若被破壞,整個數(shù)據(jù)庫將無法工作和恢復(fù);參數(shù)文件中設(shè)置了很多Oracle 數(shù)據(jù)庫的配置參數(shù),當(dāng)數(shù)據(jù)庫啟動時,會讀取這些信息。 邏輯結(jié)構(gòu)的優(yōu)化 邏輯結(jié)構(gòu)優(yōu)化用通俗的話來說就是通過增加、減少或調(diào)整邏輯結(jié)構(gòu)來提高應(yīng)用的效率,下面通過對基本表的設(shè)計及索引、聚簇的討論來分析ORACLE邏輯結(jié)構(gòu)的優(yōu)化。 1、基本表擴展: 數(shù)據(jù)庫性能包括存儲空間需求量的大小和查詢響應(yīng)時間的長短兩個方面。為了優(yōu)化數(shù)據(jù)庫性能,需要對數(shù)據(jù)庫中的表進(jìn)行規(guī)范化。一般來說,邏輯數(shù)據(jù)庫設(shè)計滿足第三范式的表結(jié)構(gòu)輕易維護(hù)且基本滿足實際應(yīng)用的要求。所以,實際應(yīng)用中一般都按照第三范式的標(biāo)準(zhǔn)進(jìn)行規(guī)范化,從而保證了數(shù)據(jù)庫的一致性和完整性,設(shè)計人員往往會設(shè)計過多的表間關(guān)聯(lián),以盡可能地降低數(shù)據(jù)冗余。但在實際應(yīng)用中這種做法有時不利于系統(tǒng)運行性能的優(yōu)化:如過程從多表獲取數(shù)據(jù)時引發(fā)大量的連接操作,在需要部分?jǐn)?shù)據(jù)時要掃描整個表等,這都消耗了磁盤的I/O 和CPU 時間。 為解決這一問題,在設(shè)計表時應(yīng)同時考慮對某些表進(jìn)行反規(guī)范化,方法有以下幾種:一是分割表。分割表可分為水平分割表和垂直分割表兩種:水平分割是按照行將一個表分割為多個表,這可以提高每個表的查詢速度,但查詢、更新時要選擇不同的表,統(tǒng)計時要匯總多個表,因此應(yīng)用程序會更復(fù)雜。垂直分割是對于一個列很多的表,若某些列的訪問頻率遠(yuǎn)遠(yuǎn)高于其它列,就可以將主鍵和這些列作為一個表,將主鍵和其它列作為另外一個表。通過減少列的寬度,增加了每個數(shù)據(jù)頁的行數(shù),一次I/O就可以掃描更多的行,從而提高了訪問每一個表的速度。但是由于造成了多表連接,所以應(yīng)該在同時查詢或更新不同分割表中的列的情況比較少的情況下使用。二是保留冗余列。當(dāng)兩個或多個表在查詢中經(jīng)常需要連接時,可以在其中一個表上增加若干冗余的列,以避免表之間的連接過于頻繁,一般在冗余列的數(shù)據(jù)不經(jīng)常變動的情況下使用。三是增加派生列。派生列是由表中的其它多個列的計算所得,增加派生列可以減少統(tǒng)計運算,在數(shù)據(jù)匯總時可以大大縮短運算時間。 因此,在數(shù)據(jù)庫的設(shè)計中,數(shù)據(jù)應(yīng)當(dāng)按兩種類別進(jìn)行組織:頻繁訪問的數(shù)據(jù)和頻繁修改的數(shù)據(jù)。對于頻繁訪問但是不頻繁修改的數(shù)據(jù),內(nèi)部設(shè)計應(yīng)當(dāng)物理不規(guī)范化。對于頻繁修改但并不頻繁訪問的數(shù)據(jù),內(nèi)部設(shè)計應(yīng)當(dāng)物理規(guī)范化。有時還需將規(guī)范化的表作為邏輯數(shù)據(jù)庫設(shè)計的基礎(chǔ),然后再根據(jù)整個應(yīng)用系統(tǒng)的需要,物理地非規(guī)范化數(shù)據(jù)。規(guī)范與反規(guī)范都是建立在實際的操作基礎(chǔ)之上的約束,脫離了實際兩者都沒有意義。只有把兩者合理地結(jié)合在一起,才能相互補充,發(fā)揮各自的優(yōu)點。 2、索引和聚簇: 創(chuàng)建索引是提高檢索效率最有效的方法之一,索引把表中的邏輯值映射到安全的RowID,能快速定位數(shù)據(jù)的物理地址,可以大大加快數(shù)據(jù)庫的查詢速度,一個建有合理索引的數(shù)據(jù)庫應(yīng)用系統(tǒng)可能比一個沒有建立索引的數(shù)據(jù)庫應(yīng)用系統(tǒng)效率高幾十倍,但并不是索引越多越好,在那些經(jīng)常需要修改的數(shù)據(jù)列上建立索引,將導(dǎo)致索引B*樹的不斷重組,造成系統(tǒng)性能的下降和存儲空間的浪費。對于一個大型表建立的索引,有時并不能改善數(shù)據(jù)查詢速度,反而會影響整個數(shù)據(jù)庫的性能。這主要是和SGA的數(shù)據(jù)治理方式有關(guān),Oracle在進(jìn)行數(shù)據(jù)塊高速緩存治理時,索引數(shù)據(jù)比普通數(shù)據(jù)具有更高的駐留權(quán)限,在進(jìn)行空間競爭時,Oracle會先移出普通數(shù)據(jù),對建有索引的大型表進(jìn)行數(shù)據(jù)查詢時,索引數(shù)據(jù)可能會用完所有的數(shù)據(jù)塊緩存空間,Oracle不得不頻繁地進(jìn)行磁盤讀寫來獲取數(shù)據(jù),所以,在對一個大型表進(jìn)行分區(qū)之后,可以根據(jù)相應(yīng)的分區(qū)建立分區(qū)索引。 Oracle提供了另一種方法來提高查詢速度,就是聚簇(Cluster)。所謂聚簇,簡單地說就是把幾個表放在一起,按一定公共屬性混合存放。聚簇根據(jù)共同碼值將多個表的數(shù)據(jù)存儲在同一個Oracle塊中,這時檢索一組Oracle塊就同時得到兩個表的數(shù)據(jù),這樣就可以減少需要存儲的Oracle塊,從而提高應(yīng)用程序的性能。 對于邏輯結(jié)構(gòu)的優(yōu)化,還應(yīng)將表數(shù)據(jù)和索引數(shù)據(jù)分開表空間存儲,分別使用獨立的表空間。因為假如將表數(shù)據(jù)和索引數(shù)據(jù)放在一起,表數(shù)據(jù)的I/O操作和索引的I/O操作將產(chǎn)生影響系統(tǒng)性能的I/O競爭,降低系統(tǒng)的響應(yīng)效率。將表數(shù)據(jù)和索引數(shù)據(jù)存放在不同的表空間中,并在物理層面將這兩個表空間的數(shù)據(jù)文件放在不同的物理磁盤上,就可以避免這種競爭了。 物理結(jié)構(gòu)的優(yōu)化 數(shù)據(jù)庫的數(shù)據(jù)最終是存儲在物理磁盤上的,對數(shù)據(jù)進(jìn)行訪問就是對這些物理磁盤進(jìn)行讀寫,因此對于這些物理存儲的優(yōu)化是系統(tǒng)優(yōu)化的一個重要部分。對于物理存儲結(jié)構(gòu)優(yōu)化,主要是合理地分配邏輯結(jié)構(gòu)的物理存儲地址,這樣雖不能減少對物理存儲的讀寫次數(shù),但卻可以使這些讀寫盡量并行,減少磁盤讀寫競爭,從而提高效率,也可以通過對物理存儲進(jìn)行精密的計算減少不必要的物理存儲結(jié)構(gòu)擴充,從而提高系統(tǒng)利用率。 1、磁盤讀寫并行優(yōu)化: 對于數(shù)據(jù)庫的物理讀寫,Oracle系統(tǒng)本身會進(jìn)行盡可能的并行優(yōu)化,例如在一個最簡單的表檢索操作中,假如表結(jié)構(gòu)和檢索域上的索引不在一個物理結(jié)構(gòu)上,那么在檢索的過程中,對索引的檢索和對表的檢索就是并行進(jìn)行的。 2、操作并行優(yōu)化: 操作并行的優(yōu)化是基于操作語句的統(tǒng)計結(jié)果,首先是統(tǒng)計各個表的訪問頻率,表之間的連接頻率,根據(jù)這些數(shù)據(jù)按如下原則分配表空間和物理磁盤,減少系統(tǒng)進(jìn)程和用戶進(jìn)程的磁盤I/O競爭;把需要連接的表格在表空間/物理磁盤上分開;把高頻訪問的表格在表空間/物理磁盤上分開;把經(jīng)常需要進(jìn)行檢索的表格的表結(jié)構(gòu)和索引在表空間/物理磁盤上分開。 3、減少存儲結(jié)構(gòu)擴展: 假如應(yīng)用系統(tǒng)的數(shù)據(jù)庫比較脆弱,并在不斷地增長或縮小,這樣的系統(tǒng)在非動態(tài)變化周期內(nèi)效率合理,但是當(dāng)在動態(tài)變化周期內(nèi)的時候,性能卻很差,這是由于Oracle的動態(tài)擴展造成的。在動態(tài)擴張的過程中,Oracle必須根據(jù)存儲的要求,在創(chuàng)建行、行變化獲取缺省值時,擴展和分配新的存儲空間,而且表格的擴展往往并不是事情的終結(jié),還可能導(dǎo)致數(shù)據(jù)文件、表空間的增長,這些擴展會導(dǎo)致在線系統(tǒng)反應(yīng)緩慢。對于這樣的系統(tǒng),最好的辦法就是在建立的時候預(yù)先分配足夠的大小和合適的增長幅度。在一個對象建立的時候要根據(jù)應(yīng)用充分地計算他們的大小,然后再根據(jù)這些數(shù)據(jù)來定義對象Initial、Next和Minextents的值,使數(shù)據(jù)庫在物理存儲上和動態(tài)增長次數(shù)上達(dá)到一個比較好的平衡點,使這些對象既不經(jīng)常發(fā)生增長,也不過多地占用數(shù)據(jù)庫。 結(jié)論 優(yōu)化Oracle 數(shù)據(jù)庫對提高計算機系統(tǒng)的可用性和效率,具有非常重要的意義, 非凡是在Oracle數(shù)據(jù)庫設(shè)計開發(fā)階段,對邏輯結(jié)構(gòu)和物理結(jié)構(gòu)進(jìn)行有效的優(yōu)化設(shè)計,創(chuàng)建一個規(guī)劃布局合理的數(shù)據(jù)庫,可以獲得最小的系統(tǒng)開銷,能從根本上大大提高應(yīng)用系統(tǒng)的整體性能,對于以后的數(shù)據(jù)庫性能調(diào)整和利用都有很大的益處。
標(biāo)簽: Oracle 數(shù)據(jù)庫
主站蜘蛛池模板: 安平县鑫川金属丝网制品有限公司,声屏障,高速声屏障,百叶孔声屏障,大弧形声屏障,凹凸穿孔声屏障,铁路声屏障,顶部弧形声屏障,玻璃钢吸音板 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 网站制作优化_网站SEO推广解决方案-无锡首宸信息科技公司 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | 钢托盘,钢制托盘,立库钢托盘,金属托盘制造商_南京飞天金属制品实业有限公司 | 塑料薄膜_PP薄膜_聚乙烯薄膜-常州市鑫美新材料包装厂 | 流水线电子称-钰恒-上下限报警电子秤-上海宿衡实业有限公司 | OpenI 启智 新一代人工智能开源开放平台| 悬浮拼装地板_篮球场木地板翻新_运动木地板价格-上海越禾运动地板厂家 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | ET3000双钳形接地电阻测试仪_ZSR10A直流_SXJS-IV智能_SX-9000全自动油介质损耗测试仪-上海康登 | 高压绝缘垫-红色配电房绝缘垫-绿色高压绝缘地毯-上海苏海电气 | 拖鞋定制厂家-品牌拖鞋代加工厂-振扬实业中国高端拖鞋大型制造商 | 磨煤机配件-高铬辊套-高铬衬板-立磨辊套-盐山县宏润电力设备有限公司 | 馋嘴餐饮网_餐饮加盟店火爆好项目_餐饮连锁品牌加盟指南创业平台 | 小型UV打印机-UV平板打印机-大型uv打印机-UV打印机源头厂家 |松普集团 | 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 山楂片_雪花_迷你山楂片_山楂条饼厂家-青州市丰源食品厂 | 低气压试验箱_高低温低气压试验箱_低气压实验箱 |林频试验设备品牌 | 芝麻黑-芝麻黑石材厂家-永峰石业 | 金属回收_废铜废铁回收_边角料回收_废不锈钢回收_废旧电缆线回收-广东益夫金属回收公司 | 千斤顶,液压千斤顶-力良企业,专业的液压千斤顶制造商,shliliang.com | 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 工业制氮机_psa制氮机厂家-宏骁智能装备科技江苏有限公司 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 仓储货架_南京货架_钢制托盘_仓储笼_隔离网_环球零件盒_诺力液压车_货架-南京一品仓储设备制造公司 | 无机纤维喷涂棉-喷涂棉施工工程-山东华泉建筑工程有限公司▲ | 郑州水质检测中心_井水检测_河南废气检测_河南中环嘉创检测 | 精密模具加工制造 - 富东懿 | 玻璃钢型材-玻璃钢风管-玻璃钢管道,生产厂家-[江苏欧升玻璃钢制造有限公司] | 砂尘试验箱_淋雨试验房_冰水冲击试验箱_IPX9K淋雨试验箱_广州岳信试验设备有限公司 | 液氮罐_液氮容器_自增压液氮罐_杜瓦瓶_班德液氮罐厂家 | 宏源科技-房地产售楼系统|线上开盘系统|售楼管理系统|线上开盘软件 | 浙江宝泉阀门有限公司 | 心肺复苏模拟人|医学模型|急救护理模型|医学教学模型上海康人医学仪器设备有限公司 | 留学生辅导网-在线课程论文辅导-留学生挂科申诉机构 | 并网柜,汇流箱,电控设备,中高低压开关柜,电气电力成套设备,PLC控制设备订制厂家,江苏昌伟业新能源科技有限公司 | 逗网红-抖音网红-快手网红-各大平台网红物品导航 | 废旧物资回收公司_广州废旧设备回收_报废设备物资回收-益美工厂设备回收公司 | 缠绕机|缠绕膜包装机|缠绕包装机-上海晏陵智能设备有限公司 | 小型数控车床-数控车床厂家-双头数控车床 |