CN102955828B - 用于数据库大对象重整的方法和系统 - Google Patents

用于数据库大对象重整的方法和系统 Download PDF

Info

Publication number
CN102955828B
CN102955828B CN201110254002.XA CN201110254002A CN102955828B CN 102955828 B CN102955828 B CN 102955828B CN 201110254002 A CN201110254002 A CN 201110254002A CN 102955828 B CN102955828 B CN 102955828B
Authority
CN
China
Prior art keywords
inline lob
lob
inline
degree
enlivening
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201110254002.XA
Other languages
English (en)
Other versions
CN102955828A (zh
Inventor
杨新颖
魏可伟
周祥
武硕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201110254002.XA priority Critical patent/CN102955828B/zh
Priority to US13/463,870 priority patent/US9158798B2/en
Publication of CN102955828A publication Critical patent/CN102955828A/zh
Application granted granted Critical
Publication of CN102955828B publication Critical patent/CN102955828B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2219Large Object storage; Management thereof

Abstract

本公开提供了一种用于数据库大对象LOB重整的方法和系统,方法包括:计算内联LOB的活跃度;根据内联LOB的活跃度重新定义内联LOB长度;以及利用重新定义的内联LOB长度进行LOB重整。通过在内联LOB重整过程中考虑内联LOB的活跃度这样的信息,使得进行REORG时充分考虑了影响数据库性能的因素,因而能够通过REORG操作带来数据库性能的显著提升。

Description

用于数据库大对象重整的方法和系统
技术领域
本公开涉及数据库大对象(LOB),更具体地,本公开涉及一种用于数据库大对象重整(REORG)的方法和系统。
背景技术
大对象(LOB)是一种数据类型,包括三种:BLOB数据类型存储二进制数据,比如图片;CLOB数据类型存储字符数据,比如文本文件;DBCLOB数据类型存储双字节字符数据。LOB数据类型对应的存储物体有可能是很大的图片或者文件,与其他数据类型相比,LOB需要采用特殊的存储方式。
因为LOB的大小一般都很大,甚至大于数据库规定的最大行大小。这就意味着很多LOB无法与基本表行存储在一起。为了解决这个问题,以DB2为例,LOB被存放于特定的LOB表空间中,原来表行中LOB的位置存放一个LOB描述符,指向LOB所存储的位置,也就是说采用分开存储的方式。然而在有些情况下,LOB的大小并不是非常大,此类LOB完全可以存放在数据表行中以提高LOB的数据访问性能,这便是内联LOB技术。内联LOB技术就是以直接插入表行的方式来存储比较小的LOB。
通常,数据库系统会通过REORG操作来优化性能。对于内联LOB,当前的REORG不考虑数据库环境,数据操作粒度等影响数据库性能的因素。这样往往导致REORG操作并不能带来数据库性能的显著提升,有时甚至会导致数据库性能的下降。
发明内容
本公开说明性实施例中认识到现有技术中存在的上述缺点。为此,本公开提供了克服现有技术中一个或多个上述缺点的技术方案。
根据本公开的一个实施例,提供了一种用于数据库大对象LOB重整的方法,包括:计算内联LOB的活跃度;根据内联LOB的活跃度重新定义内联LOB长度;以及利用重新定义的内联LOB长度进行LOB重整。
根据本公开的一个实施例,内联LOB的活跃度包括内联LOB的行活跃度,并且其中计算内联LOB的活跃度包括:利用内联LOB的命中次数以及相同时间段内内联LOB所在数据行的命中次数计算内联LOB的行活跃度。
根据本公开的一个实施例,用于数据库大对象LOB重整的方法进一步包括:确定内联LOB的行活跃度是否超过预先设定的阈值;以及响应于内联LOB的行活跃度不超过预先设定的阈值,将该内联LOB长度重新定义为0。
根据本公开的一个实施例,用于数据库大对象LOB重整的方法进一步包括计算多个内联LOB的行活跃度;将多个内联LOB的行活跃度进行排序;确定多个内联LOB的行活跃度中的某一内联LOB的行活跃度的排序位次是否满足特定的条件;以及响应于该内联LOB的行活跃度的排序位次满足所述特定的条件,将该内联LOB长度重新定义为0。
根据本公开的一个实施例,其中内联LOB的活跃度包括内联LOB的页活跃度,并且其中计算内联LOB的活跃度包括:利用内联LOB的命中次数以及相同时间段内内联LOB所在数据页的命中次数计算内联LOB的页活跃度。
根据本公开的一个实施例,用于数据库大对象LOB重整的方法进一步包括:确定内联LOB的页活跃度是否超过预先设定的阈值;以及响应于内联LOB的页活跃度不超过预先设定的阈值,将该内联LOB长度重新定义为0。
根据本公开的一个实施例,用于数据库大对象LOB重整的方法进一步包括:计算多个内联LOB的页活跃度;将多个内联LOB的页活跃度进行排序;确定多个内联LOB的页活跃度中的某一内联LOB的页活跃度的排序位次是否满足特定的条件;以及响应于该内联LOB的页活跃度的排序位次满足所述特定的条件,将该内联LOB长度重新定义为0。
根据本公开的一个实施例,提供了一种用于数据库大对象LOB重整的系统,包括:计算部件,配置为计算内联LOB的活跃度;定义部件,配置为根据内联LOB的活跃度重新定义内联LOB长度;以及重整部件,配置为利用重新定义的内联LOB长度进行LOB重整。
此外,本公开的实施例还提供了与上述方法对应的计算机程序产品。
利用本公开的上述一个或多个实施例,在针对内联LOB进行REORG时利用内联LOB的活跃度,并且从不同的数据操作粒度出发进行REORG,也就是说在进行REORG时充分考虑了影响数据库性能的因素,因此通过REORG操作能够带来数据库性能的显著提升。
附图说明
本公开可以通过参考下文中结合附图所给出的描述而得到更好的理解,其中在所有附图中使用了相同或相似的附图标记来表示相同或者相似的部件。所述附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分,而且用来进一步举例说明本公开的优选实施例和解释本公开的原理和优点。在附图中:
图1显示了适于用来实现本公开实施方式的示例性计算系统100的框图;
图2显示了根据本公开实施例的用于数据库大对象LOB重整的方法200的流程图;
图3显示了根据本公开实施例的用于数据库大对象LOB重整的系统300的框图;
图4a-4c显示了根据本公开实施例方法的一个详细示例。
具体实施方式
下面结合附图介绍根据本公开的实施例。
本文中所用的术语,仅仅是为了描述特定的实施例,而不意图限定本发明。本文中所用的单数形式的“一”和“该”,旨在也包括复数形式,除非上下文中明确地另行指出。还要知道,“包含”一词在本说明书中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件,以及/或者它们的组合。
以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置(means)或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要把本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。
图1显示了适于用来实现本公开实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPU101、RAM102、ROM103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅为了示例的目的而示出的,而不是对本公开范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
由于现有的针对内联LOB的REORG不考虑数据库环境,数据操作粒度等影响数据库性能的因素,这样带来的结果往往是通过REORG并不能给数据库性能带来显著地提升。本公开通过引入内联LOB的活跃度,在进行REORG时将数据库环境、数据操作粒度考虑进去,因而提高了REORG能够给数据库带来的性能提升。
根据本公开,在内联LOB的数据表中引入下面的数据栏:
内联LOB命中计数器:对应于数据表中的每个数据行中的每个内联LOB,当某一内联LOB被命中,该内联LOB对应的内联LOB命中计数器的值加一;
数据行命中计数器:对应于数据表中的每个数据行,当某一数据行被命中,该数据行对应的数据行命中计数器的值加一;
数据页命中计数器,对应于数据表中的每个数据页,当某一数据页被命中,该数据页对应的数据页命中计数器的值加一。
参见图4中,其中显示了在内联LOB的数据表中引入内联LOB命中计数器和数据行命中计数器的例子。
对于每个数据表,必须引入上面描述的三种计数器中的内联LOB命中计数器。对于数据行命中计数器和数据页命中计数器,可以二者择一引入,也可以全部引入。可以由数据库引擎负责监控内联LOB、数据行或数据页的命中。
图2显示了根据本公开实施例的用于数据库大对象LOB重整的方法200的流程图。
根据本公开实施例的用于数据库大对象LOB重整的方法200从步骤202开始。
接下来,方法200进入步骤204,其中计算内联LOB的活跃度。根据本公开的一个实施例,内联LOB的活跃度包括内联LOB的行活跃度,利用内联LOB的命中次数以及相同时间段内内联LOB所在数据行的命中次数计算内联LOB的行活跃度,其中:
内联LOB的行活跃度=内联LOB的命中次数/内联LOB所在数据行的命中次数(相同时间段内)
根据本公开的另一个实施例,内联LOB的活跃度包括内联LOB的页活跃度,利用内联LOB的命中次数以及相同时间段内内联LOB所在数据页的命中次数计算内联LOB的页活跃度,其中:
内联LOB的页活跃度=内联LOB的命中次数/内联LOB所在数据页的命中次数(相同时间段内)
内联LOB的行活跃度和内联LOB的页活跃度分别从数据行和数据页的不同粒度上体现了内联LOB的活跃度。内联LOB的行活跃度的含义是,对于某一内联LOB,其所在行被命中时该内联LOB被命中的几率。内联LOB的页活跃度的含义是,对于某一内联LOB,其所在页被命中时该内联LOB被命中的几率。
接下来,方法200进入步骤208,其中根据内联LOB的活跃度重新定义内联LOB长度。
根据本公开的一个实施例,根据内联LOB的活跃度重新定义内联LOB长度包括:确定内联LOB的行活跃度是否超过预先设定的阈值;以及响应于内联LOB的行活跃度不超过预先设定的阈值,将该内联LOB长度重新定义为0。该预先设定的阈值可以由数据库管理员根据经验设定,或者根据数据库引擎对内联LOB、数据行的命中的监控结果设定。该预先设定的阈值的意义在于,如果某一内联LOB的行活跃度不超过该预先设定的阈值,也就是说该内联LOB被命中的可能性不超过该预先设定的阈值,那么将该内联LOB移出该数据行(即将该内联LOB长度重新定义为0)并把它存储在单独的LOB表空间中可能更有利于提高数据库的性能。
根据本公开的一个实施例,根据内联LOB的活跃度重新定义内联LOB长度包括:计算多个内联LOB的行活跃度;将多个内联LOB的行活跃度进行排序;确定多个内联LOB的行活跃度中的某一内联LOB的行活跃度的排序位次是否满足特定的条件;以及响应于该内联LOB的行活跃度的排序位次满足所述特定的条件,将该内联LOB长度重新定义为0。根据本公开的一个实施例,将多个内联LOB的行活跃度进行降序排序,该特定的条件是排序位次不小于预先设定的值。根据本公开的另一实施例,将多个内联LOB的行活跃度进行升序排序,该特定的条件是排序位次不大于预先设定的值。可以由数据库管理员根据经验设定,或者根据数据库引擎对内联LOB、数据行或者数据页的命中的监控结果设定上面描述的预先设定的值。对于将多个内联LOB的行活跃度进行降序排序,该特定的条件是排序位次不小于预先设定的值的情况,如果某一内联LOB的行活跃度的排序位次不小于该预先设定的值,那么将该内联LOB移出该数据行(即将该内联LOB长度重新定义为0)并把它存储在单独的LOB表空间中可能更有利于提高数据库的性能。类似的,对于将多个内联LOB的行活跃度进行升序排序,该特定的条件是排序位次不大于预先设定的值的情况,如果某一内联LOB的行活跃度的排序位次不大于该预先设定的值,那么将该内联LOB移出该数据行(即将该内联LOB长度重新定义为0)并把它存储在单独的LOB表空间中可能更有利于提高数据库的性能。
在将内联LOB移出数据行并将它存储在单独的LOB表空间之后,在存储该LOB原位置插入该LOB对应的指示符,指向该LOB在LOB表空间中的位置。对于此种情形,数据库引擎需要进行适当的修改,使其能够在进行数据操作时识别存储内联LOB位置中究竟是存储的LOB本身还是LOB对应的指示符。在本公开的上述内容的基础上,这对所属领域技术人员来说是可以根据其掌握的知识得到的,这里不再详细描述。
根据本公开的一个实施例,根据内联LOB的活跃度重新定义内联LOB长度包括:确定内联LOB的页活跃度是否超过预先设定的阈值;以及响应于内联LOB的页活跃度不超过预先设定的阈值,将该内联LOB长度重新定义为0。该预先设定的阈值可以由数据库管理员根据经验设定,或者根据数据库引擎对内联LOB、数据页的命中的监控结果设定。该预先设定的阈值的意义在于,如果某一内联LOB的页活跃度不超过该预先设定的阈值,也就是说该内联LOB被命中的可能性不超过该预先设定的阈值,那么将该内联LOB移出该数据页(即将该内联LOB长度重新定义为0)并把它存储在单独的LOB表空间中可能更有利于提高数据库的性能。
根据本公开的一个实施例,根据内联LOB的活跃度重新定义内联LOB长度包括:计算多个内联LOB的页活跃度;将多个内联LOB的页活跃度进行排序;确定多个内联LOB的页活跃度中的某一内联LOB的页活跃度的排序位次是否满足特定的条件;以及响应于该内联LOB的页活跃度的排序位次满足所述特定的条件,将该内联LOB长度重新定义为0。根据本公开的一个实施例,将多个内联LOB的页活跃度进行降序排序,该特定的条件是排序位次不小于预先设定的值。根据本公开的另一实施例,将多个内联LOB的页活跃度进行升序排序,该特定的条件是排序位次不大于预先设定的值。可以由数据库管理员根据经验设定,或者根据数据库引擎对内联LOB、数据页的命中的监控结果设定上面描述的预先设定的值。对于将多个内联LOB的页活跃度进行降序排序,该特定的条件是排序位次不小于预先设定的值的情况,如果某一内联LOB的页活跃度的排序位次不小于该预先设定的值,那么将该内联LOB移出该数据页(即将该内联LOB长度重新定义为0)并把它存储在单独的LOB表空间中可能更有利于提高数据库的性能。类似的,对于将多个内联LOB的页活跃度进行升序排序,该特定的条件是排序位次不大于预先设定的值的情况,如果某一内联LOB的页活跃度的排序位次不大于该预先设定的值,那么将该内联LOB移出该数据页(即将该内联LOB长度重新定义为0)并把它存储在单独的LOB表空间中可能更有利于提高数据库的性能。
接下来,方法200进入步骤210,其中利用重新定义的内联LOB长度进行LOB重整。根据重新定义的内联LOB的长度进行重整,那些LOB长度被重新定义为0的内联LOB将被移出数据行或数据页。可以利用现有技术根据重新设定的内联LOB长度进行重整,这里不再详细描述。最后,方法进入步骤212结束。
上面结合附图2以及几个具体实施例对用于数据库大对象LOB重整的方法200进行了介绍。
下面结合附图3对根据本公开实施例的用于数据库大对象LOB重整的系统进行介绍。参见图3,根据本公开实施例的用于数据库大对象LOB重整的系统300包括:计算部件302,配置为计算内联LOB的活跃度;定义部件304,配置为根据内联LOB的活跃度重新定义内联LOB长度;以及重整部件306,配置为利用重新定义的内联LOB长度进行LOB重整。
根据本公开的一个实施例,内联LOB的活跃度包括内联LOB的行活跃度,其中计算部件302利用内联LOB的命中次数以及相同时间段内内联LOB所在数据行的命中次数计算内联LOB的行活跃度,其中:
内联LOB的行活跃度=内联LOB的命中次数/内联LOB所在数据行的命中次数(相同时间段内)
根据本公开的另一个实施例,内联LOB的活跃度包括内联LOB的页活跃度,其中计算部件302利用内联LOB的命中次数以及相同时间段内内联LOB所在数据页的命中次数计算内联LOB的页活跃度,其中:
内联LOB的页活跃度=内联LOB的命中次数/内联LOB所在数据页的命中次数(相同时间段内)
根据本公开的一个实施例,用于数据库大对象LOB重整的系统300进一步包括:确定部件(未示出),配置为确定内联LOB的行活跃度是否超过预先设定的阈值,并且其中定义部件进一步配置为响应于内联LOB的行活跃度不超过预先设定的阈值,将该内联LOB长度重新定义为0。
根据本公开的一个实施例,其中计算部件302进一步配置为计算多个内联LOB的行活跃度,并且系统300进一步包括:排序部件(未示出),配置为将多个内联LOB的行活跃度进行排序;确定部件(未示出),配置为确定多个内联LOB的行活跃度中某一内联LOB的行活跃的排序位次是否满足特定的条件;其中定义部件302进一步配置为响应于该内联LOB的行活跃度的排序位次满足所述特定的条件,将该内联LOB长度重新定义为0。根据本公开的一个实施例,将多个内联LOB的行活跃度进行降序排序,该特定的条件是排序位次不小于预先设定的值。根据本公开的另一实施例,将多个内联LOB的行活跃度进行升序排序,该特定的条件是排序位次不大于预先设定的值。可以由数据库管理员根据经验设定,或者根据数据库引擎对内联LOB、数据行或者数据页的命中的监控结果设定上面描述的预先设定的值。对于将多个内联LOB的行活跃度进行降序排序,该特定的条件是排序位次不小于预先设定的值的情况,如果某一内联LOB的行活跃度的排序位次不小于该预先设定的值,那么将该内联LOB移出该数据行(即将该内联LOB长度重新定义为0)并把它存储在单独的LOB表空间中可能更有利于提高数据库的性能。类似的,对于将多个内联LOB的行活跃度进行升序排序,该特定的条件是排序位次不大于预先设定的值的情况,如果某一内联LOB的行活跃度的排序位次不大于该预先设定的值,那么将该内联LOB移出该数据行(即将该内联LOB长度重新定义为0)并把它存储在单独的LOB表空间中可能更有利于提高数据库的性能。
根据本公开的一个实施例,用于数据库大对象LOB重整的系统300进一步包括:确定部件(未示出),配置为确定内联LOB的页活跃度是否超过预先设定的阈值,并且其中定义部件304进一步配置为响应于内联LOB的页活跃度不超过预先设定的阈值,将该内联LOB长度重新定义为0。
根据本公开的一个实施例,其中计算部件302进一步配置为计算多个内联LOB的页活跃度,并且系统300进一步包括:排序部件(未示出),配置为将多个内联LOB的页活跃度进行排序;以及确定部件(未示出),配置为确定多个内联LOB的页活跃度中某一内联LOB的页活跃的排序位次是否满足特定的条件;其中定义部件304进一步配置为响应于该内联LOB的页活跃度的排序位次满足所述特定的条件,将该内联LOB长度重新定义为0。根据本公开的一个实施例,将多个内联LOB的页活跃度进行降序排序,该特定的条件是排序位次不小于预先设定的值。根据本公开的另一实施例,将多个内联LOB的页活跃度进行升序排序,该特定的条件是排序位次不大于预先设定的值。可以由数据库管理员根据经验设定,或者根据数据库引擎对内联LOB、数据页的命中的监控结果设定上面描述的预先设定的值。对于将多个内联LOB的页活跃度进行降序排序,该特定的条件是排序位次不小于预先设定的值的情况,如果某一内联LOB的页活跃度的排序位次不小于该预先设定的值,那么将该内联LOB移出该数据页(即将该内联LOB长度重新定义为0)并把它存储在单独的LOB表空间中可能更有利于提高数据库的性能。类似的,对于将多个内联LOB的页活跃度进行升序排序,该特定的条件是排序位次不大于预先设定的值的情况,如果某一内联LOB的页活跃度的排序位次不大于该预先设定的值,那么将该内联LOB移出该数据页(即将该内联LOB长度重新定义为0)并把它存储在单独的LOB表空间中可能更有利于提高数据库的性能。
下面结合图4a-4c以内联LOB的行活跃度为例详细描述根据本公开的实施例的方法。首先参见图4a,其中显示了根据本公开的方法在进行内联LOB的REORG之前的数据的组织方式,其中示例性的显示了8个数据页,每个数据页包括两个数据行,其中每个数据行的第一列和第二列是根据本公开的方法引入的内联LOB命中计数器和数据行命中计数器。
现在参见图4b,其中根据本公开的方法,在进行内联LOB的REORG时,利用每个数据行的内联LOB命中计数器(数据行的第一列)和数据行命中计数器(数据行的第二列)的内容计算每个内联LOB的行活跃度。图4b左侧表格为每个数据页中每个数据行的第一列和第二列的内容,图4b右侧表格为根据每个数据行的第一列和第二列的内容计算出的对应于每个数据行的内联LOB的行活跃度(RID以及对应于该RID的内联LOB的行活跃度)。
根据本公开的一个实施例,确定内联LOB的行活跃度是否超过预先设定的阈值,并且响应于内联LOB的行活跃度不超过预先设定的阈值,将该内联LOB长度重新定义为0。以图4b为例,假设预先设定的阈值为0.5,将每个内联LOB的行活跃度与该预先设定的阈值相比较。对于那些行活跃度不超过0.5的内联LOB,其长度被重新定义为0。在进行内联LOBREORG时候,那些行活跃度不超过0.5的内联LOB被移出其所在的数据行并被存储在LOB表空间中,同时在存储该LOB的原位置插入该LOB对应的指示符,指向该LOB在LOB表空间中的位置。图4a的例子经过根据本公开的上述实施例的方法进行REORG后结果如图4c所示。
根据本公开的一个实施例,计算多个内联LOB的行活跃度;将多个内联LOB的行活跃度进行排序;确定多个内联LOB的行活跃度中的某一内联LOB的行活跃度的排序位次是否满足特定的条件;以及响应于该内联LOB的行活跃度的排序位次满足所述特定的条件,将该内联LOB长度重新定义为0。根据本公开的一个实施例,将多个内联LOB的行活跃度进行降序排序,该特定的条件是排序位次不小于预先设定的值。以图4b为例,假设该预先设定的值是6,如果某一内联LOB的行活跃度的排序位次不小于6,那么该内联LOB的长度重新定义为0。在进行内联LOBREORG时候,那些排序位次不小于6的内联LOB被移出其所在的数据行并被存储在LOB表空间中,同时在存储该LOB的原位置插入该LOB对应的指示符,指向该LOB在LOB表空间中的位置。对于将多个内联LOB的行活跃度进行升序排序的情况,在上述描述的基础上,所属领域技术人员能够得到,这里不再赘述。
以上详细介绍了根据本公开的实施例的方法和系统。附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
所属技术领域的技术人员知道,本公开的多个方面可以体现为系统、方法或计算机程序产品。因此,本公开的多个方面可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本公开的多个方面还可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序码。
可以使用一个或多个计算机可读的介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是--但不限于--电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或任何以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任何合适的组合。在本文件的语境中,计算机可读存储介质可以是任何包含或存储程序的有形的介质,该程序被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可包括在基带中或者作为载波一部分传播的、其中体现计算机可读的程序码的传播的数据信号。这种传播的信号可以采用多种形式,包括--但不限于--电磁信号、光信号或任何以上合适的组合。计算机可读的信号介质可以是并非为计算机可读存储介质、但是能发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序的任何计算机可读介质。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括--但不限于--无线、电线、光缆、RF等等,或者任何合适的上述组合。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括--但不限于--无线、电线、光缆、RF等等,或者任何合适的上述组合。
用于执行本公开的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言-诸如”C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。
以下参照按照本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本公开的多个方面。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品。
也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
还需要指出的是,在本公开的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
虽然已经详细说明了本公开及其优点,但是应当理解在不脱离由所附的权利要求所限定的本公开的精神和范围的情况下可以进行各种改变、替代和变换。而且,本申请的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。

Claims (12)

1.一种用于数据库大对象LOB重整的方法,包括:
计算内联LOB的活跃度,其中内联LOB的活跃度包括内联LOB的行活跃度,所述内联LOB的行活跃度表示对于某一内联LOB,其所在行被命中时该内联LOB被命中的几率,并且其中计算内联LOB的活跃度包括:
利用内联LOB的命中次数除以相同时间段内该内联LOB所在数据行的命中次数计算内联LOB的行活跃度;
根据内联LOB的活跃度重新定义内联LOB长度;以及
利用重新定义的内联LOB长度进行LOB重整。
2.根据权利要求1的方法,其中根据内联LOB的活跃度重新定义内联LOB长度包括:
确定内联LOB的行活跃度是否超过预先设定的阈值;以及
响应于内联LOB的行活跃度不超过预先设定的阈值,将该内联LOB长度重新定义为0。
3.根据权利要求1的方法,其中根据内联LOB的活跃度重新定义内联LOB长度包括:
计算多个内联LOB的行活跃度;
将多个内联LOB的行活跃度进行排序;
确定多个内联LOB的行活跃度中的某一内联LOB的行活跃度的排序位次是否满足特定的条件;以及
响应于该内联LOB的行活跃度的排序位次满足所述特定的条件,将该内联LOB长度重新定义为0。
4.根据权利要求1的方法,其中内联LOB的活跃度还包括内联LOB的页活跃度,所述内联LOB的页活跃度表示对于某一内联LOB,其所在页被命中时该内联LOB被命中的几率,并且其中计算内联LOB的活跃度还包括:
利用内联LOB的命中次数除以相同时间段内内联LOB所在数据页的命中次数计算内联LOB的页活跃度。
5.根据权利要求4的方法,其中根据内联LOB的活跃度重新定义内联LOB长度包括:
确定内联LOB的页活跃度是否超过预先设定的阈值;以及
响应于内联LOB的页活跃度不超过预先设定的阈值,将该内联LOB长度重新定义为0。
6.根据权利要求4的方法,其中根据内联LOB的活跃度重新定义内联LOB长度包括:
计算多个内联LOB的页活跃度;
将多个内联LOB的页活跃度进行排序;
确定多个内联LOB的页活跃度中的某一内联LOB的页活跃度的排序位次是否满足特定的条件;以及
响应于该内联LOB的页活跃度的排序位次满足所述特定的条件,将该内联LOB长度重新定义为0。
7.一种用于数据库大对象LOB重整的系统,包括:
计算部件,配置为计算内联LOB的活跃度,其中内联LOB的活跃度包括内联LOB的行活跃度,所述内联LOB的行活跃度表示对于某一内联LOB,其所在行被命中时该内联LOB被命中的几率,并且其中计算部件利用内联LOB的命中次数除以相同时间段内内联LOB所在数据行的命中次数计算内联LOB的行活跃度;
定义部件,配置为根据内联LOB的活跃度重新定义内联LOB长度;以及
重整部件,配置为利用重新定义的内联LOB长度进行LOB重整。
8.根据权利要求7的系统,进一步包括:
确定部件,配置为确定内联LOB的行活跃度是否超过预先设定的阈值,并且其中定义部件进一步配置为响应于内联LOB的行活跃度不超过预先设定的阈值,将该内联LOB长度重新定义为0。
9.根据权利要求7的系统,其中计算部件进一步配置为计算多个内联LOB的行活跃度,并且系统进一步包括:
排序部件,配置为将多个内联LOB的行活跃度进行排序;
确定部件,配置为确定多个内联LOB的行活跃度中某一内联LOB的行活跃度的排序位次是否满足特定的条件;
其中定义部件进一步配置为响应于该内联LOB的行活跃度的排序位次满足所述特定的条件,将该内联LOB长度重新定义为0。
10.根据权利要求7的系统,其中内联LOB的活跃度还包括内联LOB的页活跃度,所述内联LOB的页活跃度表示对于某一内联LOB,其所在页被命中时该内联LOB被命中的几率,并且其中计算部件利用内联LOB的命中次数除以相同时间段内内联LOB所在数据页的命中次数计算内联LOB的页活跃度。
11.根据权利要求10的系统,进一步包括:
确定部件,配置为确定内联LOB的页活跃度是否超过预先设定的阈值,并且其中定义部件进一步配置为响应于内联LOB的页活跃度不超过预先设定的阈值,将该内联LOB长度重新定义为0。
12.根据权利要求10的系统,其中计算部件进一步配置为计算多个内联LOB的页活跃度,并且系统进一步包括:
排序部件,配置为将多个内联LOB的页活跃度进行排序;以及
确定部件,配置为确定多个内联LOB的页活跃度中某一内联LOB的页活跃度的排序位次是否满足特定的条件;
其中定义部件进一步配置为响应于该内联LOB的页活跃度的排序位次满足所述特定的条件,将该内联LOB长度重新定义为0。
CN201110254002.XA 2011-08-31 2011-08-31 用于数据库大对象重整的方法和系统 Expired - Fee Related CN102955828B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201110254002.XA CN102955828B (zh) 2011-08-31 2011-08-31 用于数据库大对象重整的方法和系统
US13/463,870 US9158798B2 (en) 2011-08-31 2012-05-04 Database large object reorganization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110254002.XA CN102955828B (zh) 2011-08-31 2011-08-31 用于数据库大对象重整的方法和系统

Publications (2)

Publication Number Publication Date
CN102955828A CN102955828A (zh) 2013-03-06
CN102955828B true CN102955828B (zh) 2016-06-15

Family

ID=47764638

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110254002.XA Expired - Fee Related CN102955828B (zh) 2011-08-31 2011-08-31 用于数据库大对象重整的方法和系统

Country Status (2)

Country Link
US (1) US9158798B2 (zh)
CN (1) CN102955828B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810277B (zh) * 2014-02-14 2018-01-26 浪潮天元通信信息系统有限公司 一种面向快速服务的大数据聚合方法
US10942924B2 (en) * 2017-09-29 2021-03-09 Oracle International Corporation LOB query performance via automatic inference of locator-less LOB by value semantics

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535895B2 (en) 1998-09-24 2003-03-18 International Business Machines Corporation Technique to avoid processing well clustered LOB's during reorganization of a LOB table space
US6144970A (en) 1998-09-24 2000-11-07 International Business Machines Corporation Technique for inplace reorganization of a LOB table space
US7181481B2 (en) * 2003-10-20 2007-02-20 International Business Machines Corporation System and method for concurrently reorganizing logically related LOB table spaces
US7320061B2 (en) * 2004-05-10 2008-01-15 Oracle International Corporation Storage optimization for VARRAY columns
US7853619B2 (en) 2004-09-23 2010-12-14 Oracle International Corporation Storage model for large object columns
US7447717B2 (en) 2004-10-07 2008-11-04 International Business Machines Corporation Method of changing the page size of a DB2 table space while keeping the object available
EP1831803A2 (en) * 2004-12-15 2007-09-12 Koninklijke Philips Electronics N.V. System and method for managing binary large objects
US20080114780A1 (en) 2006-11-10 2008-05-15 Kwai Hing Man Efficient database data type for large objects
US7730044B2 (en) 2007-04-02 2010-06-01 Bmc Software, Inc. Log data store and assembler for large objects in database system
US20090157985A1 (en) * 2007-12-18 2009-06-18 Arm Limited Accessing memory arrays
US8239369B2 (en) * 2008-03-20 2012-08-07 DBSophic, Ltd. Method and apparatus for enhancing performance of database and environment thereof
US8135716B2 (en) 2008-12-10 2012-03-13 Sap Ag Systems and method for mapping large object data content in a database table to a work area

Also Published As

Publication number Publication date
CN102955828A (zh) 2013-03-06
US9158798B2 (en) 2015-10-13
US20130117332A1 (en) 2013-05-09

Similar Documents

Publication Publication Date Title
US9405790B2 (en) System, method and data structure for fast loading, storing and access to huge data sets in real time
US9087090B1 (en) Facilitating execution of conceptual queries containing qualitative search terms
RU2663358C2 (ru) Устройство и способ кластерного хранения
US8380680B2 (en) Piecemeal list prefetch
CN103314377B (zh) 稀疏索引表组织
US9910855B2 (en) Reordering of database records for improved compression
EP2924594A1 (en) Data encoding and corresponding data structure in a column-store database
CN102479255B (zh) 用于优化数据库查询的方法和系统
US20130311642A1 (en) Automated discovery of template patterns based on received server requests
US11748351B2 (en) Class specific query processing
US20150012557A1 (en) Minimizing result set size when converting from asymmetric to symmetric requests
CN104685499A (zh) 过滤/投影操作的硬件实现
WO2020057593A1 (zh) 一种卷积神经网络的卷积处理方法、装置及存储介质
US20130262090A1 (en) System and method for reducing semantic ambiguity
CN112131218A (zh) 一种基因对比的哈希查表方法、装置、设备及存储介质
CN114090695A (zh) 分布式数据库的查询优化的方法和装置
CN102955828B (zh) 用于数据库大对象重整的方法和系统
CN111625561B (zh) 一种数据查询方法及装置
CN105718145A (zh) 图标显示方法及装置
CN110019763A (zh) 文本过滤方法、系统、设备及计算机可读存储介质
CN110704139B (zh) 一种图标分类的方法及装置
CN110928665A (zh) 数据处理方法、装置、存储介质及终端
CN109241102A (zh) 数据处理方法及装置、存储介质和电子设备
US10803053B2 (en) Automatic selection of neighbor lists to be incrementally updated
Chung An indexing scheme for energy-efficient processing of content-based retrieval queries on a wireless data stream

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160615

CF01 Termination of patent right due to non-payment of annual fee