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

您的位置:首頁技術文章
文章詳情頁

Oracle數據庫空間使用和管理若干方法

瀏覽:133日期:2023-11-13 11:31:51
數據庫空間的有效使用和維護不僅是數據庫治理的重要工作,也是大多數開發人員所關心的內容,因為它直接關系到數據庫性能的發揮。同時數據碎片是經常令人頭疼的問題,碎片不僅造成空間的浪費,更重要的是會直接影響應 用程序的響應速度。 Oracle提供了不少方法用于數據空間的使用、監控和維護,同時也在各版本中陸續對這方面的功能進行了增強,目的在于簡化這方面工作的復雜度,提高應用的運行效率。 本文希望通過系統地介紹這方面的有關概念,讓大家能更好地規劃使用數據空間,正確使用Oracle提供的有關功能特性,提高應用的執行效率。 一、有關概念 數據庫的空間在邏輯上分為多個表空間,每個表空間則由系統中的一個或多個物理數據文件構成。Oracle存儲數據的基本單位是塊,其大小在建庫時由DB_BLOCK_SIZE參數確定,一個或多個連續的塊構成一個區片(EXTENT),它作為數據對象存儲的基本單位來使用。在Oracle中,每個基本數據對象使用的空間稱為段(Segment),段存放在唯一的表空間上,每個段實際上是一系列區片(更為準確地是數據塊)的集合。每個簡單數據對象對應一個段。對于分區對象如分區表、索引,則每個(子)分區對應一個段,由各個(子)分區共同構成一個完整的數據對象。因此,可以把表空間看作桶,里面放著許多段。一個段只能放在一個桶中,而不能跨越多個桶。 二、表空間的使用 表空間碎片的產生 由于同一個表空間中存放有多個數據段,各個數據段可以有不同的區片尺寸,不同段的區片可以交叉存放。當這些段中的區片經過分配(如創建表)、釋放(如刪除表)后,就可能使表空間中原本連續的空閑數據塊變成不連續,而區片必須由連續的數據塊構成,這時,當某一段需要分配新的區片時,就有可能出現雖然表空間空閑數據塊的總和大于所需區片的大小,但卻無法找到一串連續的塊來供此區片分配使用。這種情況就稱為表空間的Extent Fragmentation。我們經常會碰到這種情況,明明從DBA_FREE_SPACE中計算表空間還有幾百MB,但其中的某一個表卻無法再擴展幾個MB的空間。 消除表空間碎片 Oracle在段的區片分配上為用戶提供了很大的靈活性,然而假如未能正確使用創建表空間和數據對象的各個可選擇參數,則在最后將不可避免的要面對區片碎片的問題。Oracle 的Bhaskar Himatsingka 和 Juan Loaiza,為此提出了SAFE(Simple Algorithm for Fragmentation Elimination.)配制規則,通過遵循這套規則,區片級碎片可以完全的避免。而實際上,Oracle8i引入的新特性:Local Managed Tablespace就是SAFE規則在Oracle Server的內置實現。SAFE原則概括起來包括: 1. 對每個表空間上的段使用相同的區片尺寸。段參數INITIAL=NEXT,PCTINCREASE=0。可以通過使用Create Tablespace 的‘ MINIMUM EXTENT’ 子句來確保分配的區片是此參數的倍數。 2. 僅在表空間級指定INITIAL、NEXT參數,在創建數據段時不要指定這些參數。 3. 區片的大小根據段大小來確定,原則是均衡順序掃描的效率和空間的利用率,同時確保段的區片數目控制在1024之下。根據此原則,在進行相應測試之后,確定以下區片選取規則: 段大小(Oracle7) 區片大小(Oracle7) 段大小(Oracle8) 區片大小(Oracle8) &160M 160K &128M 128K 160M-5G 5M 128M-4G 4M &5G 160M &4G 128M 有此數據庫中可以只使用三種區片大小的表空間。在對象創建之前需對其大小進行評估,并放到相應的表空間中。 4. Oracle815引入了本地治理表空間,它在治理和性能上都優于傳統的字典治理表空間,它已融合了規則1、2、3 。要使用此特性,在CREATE TABLESPACE語句中指定EXTENT MANAGEMENT LOCAL子句。 5. 段的區片數目上限應在4096之下,DML操作在此區片數目范圍內不會有明顯的性能差異。但某些DDL操作的速度則與區片的數目關系較大。因此合理的區片數目應保持在1024之下。對于持續不斷擴展的段,應監控區片數目,在必要時移至其它表空間。 6. 對于非凡大的數據段應控制在4G-128G(Oracle7為5G-160G)之間,它們應存放到單獨的表空間上,同時對于這些特大段應考慮使用分區拉提高性能。 7. 用戶的臨時表空間應使用TEMPORARY類型。 8. 當系統的事務規模比較均衡時可以對回滾段使用OPTIMAL參數,否則應避免制定OPTIMAL參數,而定期監控回滾段的大小,并在必要時重建。 9. 臨時段和回滾段絕對不要將用戶數據存放到SYSTEM表空間,它是專為永遠不會Drop和Truncate的系統數據對象而設計的。 10. 創建表空間時指定數據文件的大小應=區片整數倍+1數據塊,對于Local Managed Tablespace則為區片整數倍+64K。 11. 當表空間使用統一的區片大小時,不要對其進行空間整理,重整的結果不僅耗費精力而且可能會使性能變差。對于未使用統一的區片尺寸的表空間應通過EXPort/Import重整。 12. 8i 提供了Alter Table …Move [Tablespace…]命令可用于快速重整表,Alter Index …Rebuild…[Tablespace…] 命令可用于快速重建索引。有關使用單個區片的誤導 在許多關于碎片整理的文檔中建議在Export時使用Compress=Y選項,將表中的所有數據調整到一個區片中,期望在Import后獲得良好性能。由此讓許多人產生一個觀點,認為當表中數據全部存放到一個區片中時,可以獲得良好性能。實際上單區片段只在以下條件成立時,才具有優越性。 數據主要以(全段)掃描方式訪問。 段所對應的數據塊在物理磁盤上連續存放,Oracle可以發布較大的順序磁盤讀操作。 通過對這兩條進行分析可以發現,一方面數據庫中大部分表是通過索引來訪問,另一方面現在的數據庫文件一般在物理上使用了RAID5或RAID0+1技術,數據以條帶化方式分布到多個物理磁盤上,邏輯上的單個區片和多區片在物理上并無本質上的區別。另外,從Oracle的角度來看,治理幾百個區片的段是非常輕松的并不會有性能的下降。由此可見將整個段放到一個區片中并無明顯好處,而這種做法卻會導致表空間碎片的產生。 三、表數據段的使用 表空間的組織 Heap表的空間由一系列區片鏈接而成,每個數據塊除塊頭外其余部分可用于存放數據,在創建表時可以指定以下參數: PCTFREE:塊中保留用于UPDATE操作的空間百分比,當數據占用的空間達到此上限時,新的數據將不能再插入到此塊中。 PCTUSED:指定塊中數據使用空間的最低百分比。當一個塊在達到PCTFREE,之后經歷了一些DELETE操作,在其空間使用下降到PCTUSED后便可以重新被用于INSERT數據。這就是PCTFREE/PCTUSED參數的含義。 調整PCTFREE、PCTUSED參數的目標一方面是提高性能,另一方面則主要是提高空間使用效率,避免出現塊中存在有許多未用的空間,但卻無法找到一個塊可以被用于插入新數據行的情況發生。 PCTFREE的使用 在Oracle中表的每一行數據由唯一的ROWID標記。而Oracle支持的數據類型中有一些長度是可變的,如VARCHAR,當對這些數據進行UPDATE時,假如塊中的可用空間不能容納UPDATE后的數據行時,Oracle將會把此行移到其它數據塊,同時保留此數據行的ROWID不變,并在原有塊中建一指針指向行遷移后的位置。在這種情況下讀取一行數據將需要訪問2個數據塊,從而導致性能下降。PCTFREE保留的空間就是為確保更改后的數據行可以仍存放于原有數據塊中,避免行遷移的情況發生。 由此,假如PCTFREE設置不足時可能產生行遷移。而另一方面假如PCTFREE設置過高,將會造成空間浪費。因此正確設置PCTFREE需要對表中數據的使用進行分析。對于數據長度不會變化或極少更新的情況,可以采用較小的PCTFREE。對于其它大多數情況應采用稍大的PCTFREE(PCTFREE的缺省值是10,假如不好估計需預留的空間,可以使用15-25的范圍),不要為節約塊中的空間而使用較小的PCTFREE值。 PCTUSED的使用 當塊的使用的空間下降到PCTUSED后,此塊被重新放回空閑鏈表(Freelist)中,作為后續Insert的候選塊。同樣,設置PCTUSED需要視數據行的特性和Insert、Update、Delete的模式而定,但必須遵守的原則是:db_block_size * (100 - PCTFREE - PCTUSED)必須比行的長度大。 對于數據行長度變化較大的情況,應使用最大行長度來計算PCTUSED,并且應使用較低的PCTUSED值。因為在執行Insert時,假如數據塊的可用空間不能裝下一行數據,當塊的使用的空間是在PCTUSED之上,Oracle將把此塊從Freelist中移走。當塊的使用的空間是在PCTUSED之下,Oracle將會擴展段空間。因此,PCTUSED假如設得過高,將導致段的不斷擴展。 當數據行長度不大時,使用缺省的PCTUSED(40)是比較合適的。對于行長度較大的情況,最長的行有可能會占用半個以上的塊空間,此時可設置PCTUSED為10。較小的PCTUSED僅在表中的數據以隨機方式被刪除,而且仍有一些行長時間保留在塊中時,才會造成空間使用上的問題,因為這些塊可能需要較長的時間才能或永遠不能重新被用于存放新數據。在這種應用中,假如空間利用率一直處于較低水平,則需對PCTUSED進行分析和調整。
標簽: Oracle 數據庫
主站蜘蛛池模板: 数控走心机-双主轴走心机厂家-南京建克 | 光伏支架成型设备-光伏钢边框设备-光伏设备厂家 | 宁波普瑞思邻苯二甲酸盐检测仪,ROHS2.0检测设备,ROHS2.0测试仪厂家 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 化工ERP软件_化工新材料ERP系统_化工新材料MES软件_MES系统-广东顺景软件科技有限公司 | 天长市晶耀仪表有限公司 | 清水-铝合金-建筑模板厂家-木模板价格-铝模板生产「五棵松」品牌 | 丝杆升降机-不锈钢丝杆升降机-非标定制丝杆升降机厂家-山东鑫光减速机有限公司 | 重庆网站建设,重庆网站设计,重庆网站制作,重庆seo,重庆做网站,重庆seo,重庆公众号运营,重庆小程序开发 | 北京西风东韵品牌与包装设计公司,创造视觉销售力! | 石牌坊价格石牌坊雕刻制作_石雕牌坊牌楼石栏杆厂家_山东嘉祥石雕有限公司 | 丹佛斯变频器-丹佛斯压力开关-变送器-广州市风华机电设备有限公司 | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 原子吸收设备-国产分光光度计-光谱分光光度计-上海光谱仪器有限公司 | 河南砖机首页-全自动液压免烧砖机,小型砌块水泥砖机厂家[十年老厂] | 河南凯邦机械制造有限公司| 反渗透水处理设备|工业零排放|水厂设备|软化水设备|海南净水设备--海南水处理设备厂家 | 电磁流量计厂家_涡街流量计厂家_热式气体流量计-青天伟业仪器仪表有限公司 | 冰晶石|碱性嫩黄闪蒸干燥机-有机垃圾烘干设备-草酸钙盘式干燥机-常州市宝康干燥 | 振动筛,震动筛,圆形振动筛,振动筛价格,振动筛厂家-新乡巨宝机电 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 船用泵,船用离心泵,船用喷射泵,泰州隆华船舶设备有限公司 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 深圳标识制作公司-标识标牌厂家-深圳广告标识制作-玟璟广告-深圳市玟璟广告有限公司 | 苏州教学设备-化工教学设备-环境工程教学模型|同科教仪 | 双杰天平-国产双杰电子天平-美国双杰-常熟双杰仪器 | 阜阳成人高考_阜阳成考报名时间_安徽省成人高考网 | 钢格板|热镀锌钢格板|钢格栅板|钢格栅|格栅板-安平县昊泽丝网制品有限公司 | 兰州UPS电源,兰州山特UPS-兰州万胜商贸| 威廉希尔WilliamHill·足球(中国)体育官方网站 | 三佳互联一站式网站建设服务|网站开发|网站设计|网站搭建服务商 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 加气混凝土砌块设备,轻质砖设备,蒸养砖设备,新型墙体设备-河南省杜甫机械制造有限公司 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 重庆私家花园设计-别墅花园-庭院-景观设计-重庆彩木园林建设有限公司 | 日本SMC气缸接头-速度控制阀-日本三菱伺服电机-苏州禾力自动化科技有限公司 | 广东青藤环境科技有限公司-水质检测| 郑州外墙清洗_郑州玻璃幕墙清洗_郑州开荒保洁-河南三恒清洗服务有限公司 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 中国玩具展_玩具展|幼教用品展|幼教展|幼教装备展 | 代做标书-代写标书-专业标书文件编辑-「深圳卓越创兴公司」 |