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

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

使用Oracle功能特性提高應(yīng)用執(zhí)行效率

瀏覽:155日期:2023-11-27 14:34:03
數(shù)據(jù)庫(kù)空間的有效使用和維護(hù)不僅是數(shù)據(jù)庫(kù)管理的重要工作,也是大多數(shù)開(kāi)發(fā)人員所關(guān)心的內(nèi)容,因?yàn)樗苯雨P(guān)系到數(shù)據(jù)庫(kù)性能的發(fā)揮。同時(shí)數(shù)據(jù)碎片是經(jīng)常令人頭疼的問(wèn)題,碎片不僅造成空間的浪費(fèi),更重要的是會(huì)直接影響應(yīng) 用程序的響應(yīng)速度。

Oracle提供了不少方法用于數(shù)據(jù)空間的使用、監(jiān)控和維護(hù),同時(shí)也在各版本中陸續(xù)對(duì)這方面的功能進(jìn)行了增強(qiáng),目的在于簡(jiǎn)化這方面工作的復(fù)雜度,提高應(yīng)用的運(yùn)行效率。

一、相關(guān)概念

數(shù)據(jù)庫(kù)的空間在邏輯上分為多個(gè)表空間,每個(gè)表空間則由系統(tǒng)中的一個(gè)或多個(gè)物理數(shù)據(jù)文件構(gòu)成;Oracle存儲(chǔ)數(shù)據(jù)的基本單位是塊,其大小在建庫(kù)時(shí)由DB_BLOCK_SIZE參數(shù)確定,一個(gè)或多個(gè)連續(xù)的塊構(gòu)成一個(gè)區(qū)片(EXTENT),它作為數(shù)據(jù)對(duì)象存儲(chǔ)的基本單位來(lái)使用。在Oracle中,每個(gè)基本數(shù)據(jù)對(duì)象使用的空間稱為段(Segment),段存放在唯一的表空間上,每個(gè)段實(shí)際上是一系列區(qū)片(更為準(zhǔn)確地是數(shù)據(jù)塊)的集合。每個(gè)簡(jiǎn)單數(shù)據(jù)對(duì)象對(duì)應(yīng)一個(gè)段;對(duì)于分區(qū)對(duì)象如分區(qū)表、索引,則每個(gè)(子)分區(qū)對(duì)應(yīng)一個(gè)段,由各個(gè)(子)分區(qū)共同構(gòu)成一個(gè)完整的數(shù)據(jù)對(duì)象。因此,可以把表空間看作桶,里面放著許多段;一個(gè)段只能放在一個(gè)桶中,而不能跨越多個(gè)桶。

二、表空間的使用

表空間碎片的產(chǎn)生

由于同一個(gè)表空間中存放有多個(gè)數(shù)據(jù)段,各個(gè)數(shù)據(jù)段可以有不同的區(qū)片尺寸,不同段的區(qū)片可以交叉存放;當(dāng)這些段中的區(qū)片經(jīng)過(guò)分配(如創(chuàng)建表)、釋放(如刪除表)后,就可能使表空間中原本連續(xù)的空閑數(shù)據(jù)塊變成不連續(xù),而區(qū)片必須由連續(xù)的數(shù)據(jù)塊構(gòu)成,這時(shí),當(dāng)某一段需要分配新的區(qū)片時(shí),就有可能出現(xiàn)雖然表空間空閑數(shù)據(jù)塊的總和大于所需區(qū)片的大小,但卻無(wú)法找到一串連續(xù)的塊來(lái)供此區(qū)片分配使用。這種情況就稱為表空間的Extent Fragmentation。我們經(jīng)常會(huì)遇到這種情況,明明從DBA_FREE_SPACE中計(jì)算表空間還有幾百M(fèi)B,但其中的某一個(gè)表卻無(wú)法再擴(kuò)展幾個(gè)MB的空間。

消除表空間碎片

Oracle在段的區(qū)片分配上為用戶提供了很大的靈活性,然而如果未能正確使用創(chuàng)建表空間和數(shù)據(jù)對(duì)象的各個(gè)可選擇參數(shù),則在最后將不可避免的要面對(duì)區(qū)片碎片的問(wèn)題。Oracle 的Bhaskar Himatsingka 和 Juan Loaiza,為此提出了SAFE(Simple Algorithm for Fragmentation Elimination.)配制規(guī)則,通過(guò)遵循這套規(guī)則,區(qū)片級(jí)碎片可以完全的避免。而實(shí)際上,Oracle8i引入的新特性:Local Managed Tablespace就是SAFE規(guī)則在Oracle Server的內(nèi)置實(shí)現(xiàn)。SAFE原則概括起來(lái)包括:

1. 對(duì)每個(gè)表空間上的段使用相同的區(qū)片尺寸;段參數(shù)INITIAL=NEXT,PCTINCREASE=0;可以通過(guò)使用Create Tablespace 的‘ MINIMUM EXTENT’ 子句來(lái)確保分配的區(qū)片是此參數(shù)的倍數(shù);

2. 僅在表空間級(jí)指定INITIAL、NEXT參數(shù),在創(chuàng)建數(shù)據(jù)段時(shí)不要指定這些參數(shù);

3. 區(qū)片的大小根據(jù)段大小來(lái)確定,原則是均衡順序掃描的效率和空間的利用率,同時(shí)確保段的區(qū)片數(shù)目控制在1024之下;根據(jù)此原則,在進(jìn)行相應(yīng)測(cè)試之后,確定以下區(qū)片選取規(guī)則:

段大小(Oracle7) 區(qū)片大小(Oracle7) 段大小(Oracle8) 區(qū)片大小(Oracle8) &160M 160K &128M 128K 160M-5G 5M 128M-4G 4M &5G 160M &4G 128M

有此數(shù)據(jù)庫(kù)中可以只使用三種區(qū)片大小的表空間;在對(duì)象創(chuàng)建之前需對(duì)其大小進(jìn)行評(píng)估,并放到相應(yīng)的表空間中;

4. Oracle815引入了本地管理表空間,它在管理和性能上都優(yōu)于傳統(tǒng)的字典管理表空間,它已融合了規(guī)則1、2、3 ;要使用此特性,在CREATE TABLESPACE語(yǔ)句中指定EXTENT MANAGEMENT LOCAL子句;

5. 段的區(qū)片數(shù)目上限應(yīng)在4096之下,DML操作在此區(qū)片數(shù)目范圍內(nèi)不會(huì)有明顯的性能差異;但某些DDL操作的速度則與區(qū)片的數(shù)目關(guān)系較大;因此合理的區(qū)片數(shù)目應(yīng)保持在1024之下;對(duì)于持續(xù)不斷擴(kuò)展的段,應(yīng)監(jiān)控區(qū)片數(shù)目,在必要時(shí)移至其它表空間;

6. 對(duì)于特別大的數(shù)據(jù)段應(yīng)控制在4G-128G(Oracle7為5G-160G)之間,它們應(yīng)存放到單獨(dú)的表空間上,同時(shí)對(duì)于這些特大段應(yīng)考慮使用分區(qū)拉提高性能;

7. 用戶的臨時(shí)表空間應(yīng)使用TEMPORARY類型;

8. 當(dāng)系統(tǒng)的事務(wù)規(guī)模比較均衡時(shí)可以對(duì)回滾段使用OPTIMAL參數(shù),否則應(yīng)避免制定OPTIMAL參數(shù),而定期監(jiān)控回滾段的大小,并在必要時(shí)重建;

9. 臨時(shí)段和回滾段絕對(duì)不要將用戶數(shù)據(jù)存放到SYSTEM表空間,它是專為永遠(yuǎn)不會(huì)Drop和Truncate的系統(tǒng)數(shù)據(jù)對(duì)象而設(shè)計(jì)的;

10. 創(chuàng)建表空間時(shí)指定數(shù)據(jù)文件的大小應(yīng)=區(qū)片整數(shù)倍+1數(shù)據(jù)塊,對(duì)于Local Managed Tablespace則為區(qū)片整數(shù)倍+64K;

11. 當(dāng)表空間使用統(tǒng)一的區(qū)片大小時(shí),不要對(duì)其進(jìn)行空間整理,重整的結(jié)果不僅耗費(fèi)精力而且可能會(huì)使性能變差;對(duì)于未使用統(tǒng)一的區(qū)片尺寸的表空間應(yīng)通過(guò)Export/Import重整;

12. 8i 提供了Alter Table …Move [Tablespace…]命令可用于快速重整表,Alter Index …Rebuild…[Tablespace…] 命令可用于快速重建索引。

有關(guān)使用單個(gè)區(qū)片的誤導(dǎo)

在許多關(guān)于碎片整理的文檔中建議在Export時(shí)使用Compress=Y(jié)選項(xiàng),將表中的所有數(shù)據(jù)調(diào)整到一個(gè)區(qū)片中,期望在Import后獲得良好性能。由此讓許多人產(chǎn)生一個(gè)觀點(diǎn),認(rèn)為當(dāng)表中數(shù)據(jù)全部存放到一個(gè)區(qū)片中時(shí),可以獲得良好性能。實(shí)際上單區(qū)片段只在以下條件成立時(shí),才具有優(yōu)越性。

數(shù)據(jù)主要以(全段)掃描方式訪問(wèn);

段所對(duì)應(yīng)的數(shù)據(jù)塊在物理磁盤(pán)上連續(xù)存放,Oracle可以發(fā)布較大的順序磁盤(pán)讀操作;

通過(guò)對(duì)這兩條進(jìn)行分析可以發(fā)現(xiàn),一方面數(shù)據(jù)庫(kù)中大部分表是通過(guò)索引來(lái)訪問(wèn),另一方面現(xiàn)在的數(shù)據(jù)庫(kù)文件一般在物理上使用了RAID5或RAID0+1技術(shù),數(shù)據(jù)以條帶化方式分布到多個(gè)物理磁盤(pán)上,邏輯上的單個(gè)區(qū)片和多區(qū)片在物理上并無(wú)本質(zhì)上的區(qū)別;另外,從Oracle的角度來(lái)看,管理幾百個(gè)區(qū)片的段是非常輕松的并不會(huì)有性能的下降。由此可見(jiàn)將整個(gè)段放到一個(gè)區(qū)片中并無(wú)明顯好處,而這種做法卻會(huì)導(dǎo)致表空間碎片的產(chǎn)生。

三、表數(shù)據(jù)段的使用

表空間的組織

Heap表的空間由一系列區(qū)片鏈接而成,每個(gè)數(shù)據(jù)塊除塊頭外其余部分可用于存放數(shù)據(jù),在創(chuàng)建表時(shí)可以指定以下參數(shù):

PCTFREE:塊中保留用于UPDATE操作的空間百分比,當(dāng)數(shù)據(jù)占用的空間達(dá)到此上限時(shí),新的數(shù)據(jù)將不能再插入到此塊中;

PCTUSED:指定塊中數(shù)據(jù)使用空間的最低百分比;當(dāng)一個(gè)塊在達(dá)到PCTFREE,之后經(jīng)歷了一些DELETE操作,在其空間使用下降到PCTUSED后便可以重新被用于INSERT數(shù)據(jù);這就是PCTFREE/PCTUSED參數(shù)的含義;

調(diào)整PCTFREE、PCTUSED參數(shù)的目標(biāo)一方面是提高性能,另一方面則主要是提高空間使用效率,避免出現(xiàn)塊中存在有許多未用的空間,但卻無(wú)法找到一個(gè)塊可以被用于插入新數(shù)據(jù)行的情況發(fā)生。

PCTFREE的使用

在Oracle中表的每一行數(shù)據(jù)由唯一的ROWID標(biāo)記;而Oracle支持的數(shù)據(jù)類型中有一些長(zhǎng)度是可變的,如VARCHAR,當(dāng)對(duì)這些數(shù)據(jù)進(jìn)行UPDATE時(shí),如果塊中的可用空間不能容納UPDATE后的數(shù)據(jù)行時(shí),Oracle將會(huì)把此行移到其它數(shù)據(jù)塊,同時(shí)保留此數(shù)據(jù)行的ROWID不變,并在原有塊中建一指針指向行遷移后的位置。在這種情況下讀取一行數(shù)據(jù)將需要訪問(wèn)2個(gè)數(shù)據(jù)塊,從而導(dǎo)致性能下降。PCTFREE保留的空間就是為確保更改后的數(shù)據(jù)行可以仍存放于原有數(shù)據(jù)塊中,避免行遷移的情況發(fā)生。

由此,如果PCTFREE設(shè)置不足時(shí)可能產(chǎn)生行遷移;而另一方面如果PCTFREE設(shè)置過(guò)高,將會(huì)造成空間浪費(fèi)。因此正確設(shè)置PCTFREE需要對(duì)表中數(shù)據(jù)的使用進(jìn)行分析。對(duì)于數(shù)據(jù)長(zhǎng)度不會(huì)變化或極少更新的情況,可以采用較小的PCTFREE;對(duì)于其它大多數(shù)情況應(yīng)采用稍大的PCTFREE(PCTFREE的缺省值是10,如果不好估計(jì)需預(yù)留的空間,可以使用15-25的范圍),不要為節(jié)約塊中的空間而使用較小的PCTFREE值。

PCTUSED的使用

當(dāng)塊的使用的空間下降到PCTUSED后,此塊被重新放回空閑鏈表(Freelist)中,作為后續(xù)Insert的候選塊。同樣,設(shè)置PCTUSED需要視數(shù)據(jù)行的特性和Insert、Update、Delete的模式而定,但必須遵守的原則是:db_block_size * (100 - PCTFREE - PCTUSED)必須比行的長(zhǎng)度大。

對(duì)于數(shù)據(jù)行長(zhǎng)度變化較大的情況,應(yīng)使用最大行長(zhǎng)度來(lái)計(jì)算PCTUSED,并且應(yīng)使用較低的PCTUSED值。因?yàn)樵趫?zhí)行Insert時(shí),如果數(shù)據(jù)塊的可用空間不能裝下一行數(shù)據(jù),當(dāng)塊的使用的空間是在PCTUSED之上,Oracle將把此塊從Freelist中移走;當(dāng)塊的使用的空間是在PCTUSED之下,Oracle將會(huì)擴(kuò)展段空間。因此,PCTUSED如果設(shè)得過(guò)高,將導(dǎo)致段的不斷擴(kuò)展。

當(dāng)數(shù)據(jù)行長(zhǎng)度不大時(shí),使用缺省的PCTUSED(40)是比較合適的;對(duì)于行長(zhǎng)度較大的情況,最長(zhǎng)的行有可能會(huì)占用半個(gè)以上的塊空間,此時(shí)可設(shè)置PCTUSED為10。較小的PCTUSED僅在表中的數(shù)據(jù)以隨機(jī)方式被刪除,而且仍有一些行長(zhǎng)時(shí)間保留在塊中時(shí),才會(huì)造成空間使用上的問(wèn)題,因?yàn)檫@些塊可能需要較長(zhǎng)的時(shí)間才能或永遠(yuǎn)不能重新被用于存放新數(shù)據(jù)。在這種應(yīng)用中,如果空間利用率一直處于較低水平,則需對(duì)PCTUSED進(jìn)行分析和調(diào)整。

主站蜘蛛池模板: 不发火防静电金属骨料_无机磨石_水泥自流平_修补砂浆厂家「圣威特」 | 细沙回收机-尾矿干排脱水筛设备-泥石分离机-建筑垃圾分拣机厂家-青州冠诚重工机械有限公司 | 塑料托盘厂家直销-吹塑托盘生产厂家-力库塑业【官网】 | 二维运动混料机,加热型混料机,干粉混料机-南京腾阳干燥设备厂 | 猎头招聘_深圳猎头公司_知名猎头公司| 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 橡胶接头|可曲挠橡胶接头|橡胶软接头安装使用教程-上海松夏官方网站 | 粉末冶金注射成型厂家|MIM厂家|粉末冶金齿轮|MIM零件-深圳市新泰兴精密科技 | 蚂蚁分类信息系统 - PHP同城分类信息系统 - MayiCMS | 学习安徽网| 北京模型公司-军事模型-工业模型制作-北京百艺模型沙盘公司 | 回转支承-转盘轴承-回转驱动生产厂家-洛阳隆达轴承有限公司 | 微量水分测定仪_厂家_卡尔费休微量水分测定仪-淄博库仑 | 机器视觉检测系统-视觉检测系统-机器视觉系统-ccd检测系统-视觉控制器-视控一体机 -海克易邦 | 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | 网站建设_网站制作_SEO优化推广_百度推广开户_朋友圈网络科技 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 深圳法律咨询【24小时在线】深圳律师咨询免费 | 专注提供国外机电设备及配件-工业控制领域一站式服务商-深圳市华联欧国际贸易有限公司 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 广州展台特装搭建商|特装展位设计搭建|展会特装搭建|特装展台制作设计|展览特装公司 | 天然鹅卵石滤料厂家-锰砂滤料-石英砂滤料-巩义东枫净水 | 创绿家招商加盟网-除甲醛加盟-甲醛治理加盟-室内除甲醛加盟-创绿家招商官网 | 医用酒精_84消毒液_碘伏消毒液等医用消毒液-漓峰消毒官网 | 带式过滤机厂家_价格_型号规格参数-江西核威环保科技有限公司 | 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | 安徽净化工程设计_无尘净化车间工程_合肥净化实验室_安徽创世环境科技有限公司 | 冻干机(冷冻干燥机)_小型|实验型|食品真空冷冻干燥机-松源 | 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | 自动气象站_农业气象站_超声波气象站_防爆气象站-山东万象环境科技有限公司 | 北京网站建设|北京网站开发|北京网站设计|高端做网站公司 | 西门子伺服控制器维修-伺服驱动放大器-828D数控机床维修-上海涌迪 | 手板_手板模型制作_cnc手板加工厂-东莞天泓| 玻璃钢板-玻璃钢防腐瓦-玻璃钢材料-广东壹诺 | 华夏医界网_民营医疗产业信息平台_民营医院营销管理培训 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | MES系统-WMS系统-MES定制开发-制造执行MES解决方案-罗浮云计算 | WF2户外三防照明配电箱-BXD8050防爆防腐配电箱-浙江沃川防爆电气有限公司 | 搜木网 - 木业全产业链交易平台,免费搜货、低价买货! | 智能电表|预付费ic卡水电表|nb智能无线远传载波电表-福建百悦信息科技有限公司 |