网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > 入门基础 > Oracle Freelist和HWM原理及性能优化方法-入门基础  

Oracle Freelist和HWM原理及性能优化方法-入门基础

2008-04-23  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

    近期来,FreeList的重要作用逐渐为Oracle DBA所认识,网上也出现一些相关的讨论。本文以FreeList为线索对Oracle的存储管理的原理进行较深入的探讨,涉及Oracle段区块管理的原理,FreeList算法等。而与FreeList密切相关的一个重用特性HWM,与sql性能密切相关,本文也作了原理分析介绍。在原理探讨的基础上,介绍了常用的存储参数分析方法,并对所涉及的存储优化、HWM的优化和Freelist竞争优化作了说明。 中国网管联盟bitsCN.com

    缩略语:
   
    ASSM:auto segement space management
    HWM:high water mark
    DBA:data block address
    OLTP:online transaction process
    OPS:oracle parallel server 网管bitscn_com

    1.简介
    Oracle的空间管理和存储参数管理是Oracle管理及优化的重要部分。FreeList作为Oracle底层存储参数中的核心参数,其行为方式对 Oracle的存储管理及性能优化有重大影响,而现有的Oracle文档对此方面的内容比较缺乏。虽然Oracle 9i已出现了ASSM,但是作为深入调优对FreeList认识仍是必要的。

网管论坛bbs_bitsCN_com

    近期来,FreeList的重要作用逐渐为Oracle DBA所认识,网上也出现一些相关的讨论。本文以FreeList为线索对Oracle的存储管理的原理进行较深入的探讨,涉及Oracle段区块管理的原理,FreeList算法等。而与FreeList密切相关的一个重用特性HWM,与sql性能密切相关,本文也作了原理分析介绍。在原理探讨的基础上,介绍了常用的存储参数分析方法,并对所涉及的存储优化、HWM的优化和Freelist竞争优化作了说明。

中国网管论坛bbs.bitsCN.com


    这些原理分析和性能优化都建立在探讨的基础上,限于篇幅和本人经验可能存在局限、偏差或谬误。 网管下载dl.bitscn.com


    为了准确文中部分结构和字段的说明直接用英文描述。限于篇幅本文不对同样很重要的block结构作更深入的讨论,对OPS性能有重要影响的free list group本文也未提及,因此本文在单一free list group下讨论。对于block的深入讨论、free list group的介绍与优化以及PCTUSED和PCTFREE等重要参数的优化请参见参考文献和资料。

网管u家u.bitsCN.com

    2.原理探讨

网管论坛bbs_bitsCN_com

    FreeList作为一个Oracle存储管理的核心参数。其行为方式由Oralce内部控制,我们一般不需要掌握和控制。但是我们可能会遇到这些问题,当插入一条记录,会插入到那个块中?是使用新块,还是插入有数据的老块?段是什么时候扩展的,如何扩展的?表中只有一条记录,但是作一次select时代价却是上千个块,为什么?如果我们从原理上清楚了Oracle的存储管理方式,对相关这些问题的解决及性能优化就清晰自然了。 网管论坛bbs_bitsCN_com


    2.1 Oracle的逻辑储存结构
    Oralce的逻辑存储结构按表空间,段,区,块进行管理。块是Oracle用来管理存储空间的最基本单元,Oracle数据库在进行输入输出操作时,都是以块为单位进行逻辑读写操作的。区由一系列连续的块组成,Oralce在进行空间分配、回收和管理时是以区为基本单位的。段由多个区组成,这些区可以是连续的也可以是不连续的,一般情况下一个对象拥有一个段。表空间中容纳段和区。 网管下载dl.bitscn.com

    在生成段的时候,会同时分配初始区(initial extents), 初始区的第一个块就格式化为segment header,并被用来记录free list描述信息、extents信息,HWM信息等。

中国网管联盟bitsCN.com


    2.2 free list概念

网管网www_bitscn_com

    free list是一种单向链表用于定位可以接收数据的块,在字典管理方式的表空间中,Oracle使用free list来管理未分配的存储块。Oracle记录了有空闲空间的块用于insert或Update。空闲空间来源于两种方式:1.段中所有超过HWM的块,这些块已经分配给段了,但是还未被使用。2.段中所有在HWM下的且链入了free list的块,可以被重用。free list具有下列属性 网管下载dl.bitscn.com

    l flag指示free list 被使用(1)或未使用(0)
    l free list 链的首块的地址DBA(data block address)
    l free list 链的尾块的地址DBA
    free list 的信息通常保留在segment header中,这里给出segment header block dump片段加以说明: 中国网管联盟bitsCN.com

    nfl = 3, nfb = 1 typ = 1 nxf = 0
    SEG LST:: flg: UNUSED lhd: 0x00000000 ltl: 0x00000000
    SEG LST:: flg: USED lhd: 0x03c00233 ltl: 0x03c00233
    SEG LST:: flg: USED lhd: 0x03c00234 ltl: 0x03c00234
    SEG LST:: flg: UNUSED lhd: 0x00000000 ltl: 0x00000000

网管联盟bitsCN@com


    Segment Header:
    ==> nfl: number of free lists/block
    ==> nfb: number of free list blocks + segment header
    ==> typ: block type
    ==> nxf: number of transaction free lists
    Segment List:
    ==> flg: flag USED or UNUSED the free list
    ==> lhd: head of free list
    ==> ltl: tail of free list 网管bitscn_com

    在每一个块中都有一个标记flg用来表明块是否链入了 free list链中。如果这个标志置上,该块中后向指针指向free list链中下一个块的DBA。如果当前块是链的最末尾的块,该后向指针值为0。这里给出位于free list上的block dump的片段

中国网管论坛bbs.bitsCN.com

    Block header dump: 0x03c00235
    Object id on Block? Y
    seg/obj: 0xe2d8 csc: 0x00.6264c61 itc: 1 flg: O typ: 1 - DATA
    fsl: 1 fnx: 0x3c00234 ver: 0x01

网管论坛bbs_bitsCN_com

    ==> Seg/obj Object ID in dictionary
    ==> csc SCN of last block cleanout
    ==> itc Number of ITL slots
    ==> flg O = On freelist , - = Not on freelist
    ==> typ 1 = DATA 2 = INDEX
    ==> fsl ITL TX freelist slot
    ==> fnx DBA of NEXT block on freelist 中国网管论坛bbs.bitsCN.com

    举例来说如果有五个块在free list中,分别为A,B,C,D,E
    就会形成segment header->A->B->C->D->E--|
    同时segment header->E 网管bitscn_com

网管下载dl.bitscn.com


TAGs
 上一篇:BITMAP索引异常增大问题-入门基础   下一篇:正确认识password file的作用-入门基础
Oracle Freelist和HWM原理及性能优化方法-入门基础 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: