首页 / 专利库 / 资料储存系统 / 数据库管理系统 / 策略驱动的数据放置和信息生命周期管理

策略驱动的数据放置和信息生命周期管理

阅读:190发布:2020-05-11

专利汇可以提供策略驱动的数据放置和信息生命周期管理专利检索,专利查询,专利分析的服务。并且提供一种用于 数据库 管理系统中的策略驱动的数据放置和信息生命周期管理的方法、设备和系统。用户或数据库应用可规定 声明 式策略,所述声明式策略定义保存的数据库对象的移动和变换。策略与数据库对象关联,也可被继承。对于数据库对象,策略定义要采取的存档动作、范围和存档动作被触发之前的条件。存档动作可包括压缩,数据移动,表聚类和把数据库对象放入对数据库对象的生命周期阶段来说适当的存储层中的其它动作。所述条件可视情况调用用户定义的函数,可以基于在行级别 指定 的 访问 统计信息,可以利用段级或 块 级热图。在后台定期进行策略评估,结果动作被排队为用于任务调度器的任务。,下面是策略驱动的数据放置和信息生命周期管理专利的具体信息内容。

1.一种用于管理数据库的方法,包括:
数据库管理系统接收以数据库语言的声明式语句,所述声明式语句定义用于与数据库中的多个数据库对象关联的策略,所述策略规定:对于保存的数据库对象的表示的存档动作和用于触发所述存档动作的活跃度条件,其中所述活跃度条件规定必须满足特定状态的最小时段,并且其中所述特定状态包括以下中的至少一者:(i)对于数据库对象的慢速存取模式、(ii)对于数据库对象的写静止、(iii)对于数据库对象的读静止、以及(iv)对于数据库对象的读和写静止;
数据库管理系统使用包括跟踪在数据库级或段级对数据库对象的访问的访问统计信息的一个或多个准则来判定对于数据库对象,所述活跃度条件被满足;
响应于确定对于该数据库对象所述活跃度条件被满足,数据库管理系统进行对于保存的所述数据库对象的表示的所述存档动作;
其中所述方法由一个或多个计算设备执行。
2.按照权利要求1所述的方法,其中所述策略规定由数据库的用户定义的自定义函数,其中数据库管理系统响应于收到来自请求登记自定义函数的用户的用户输入,把自定义函数登记在数据库中,并且其中响应于把自定义函数评估为TRUE结果,来判定对于所述数据库对象,所述活跃度条件被满足。
3.按照权利要求1所述的方法,其中所述一个或多个准则还包括把所述数据库对象的当前压缩级别变更成由存档动作指定的目标压缩级别的一个或多个成本。
4.按照权利要求1所述的方法,其中所述一个或多个准则包括下述至少之一:对于所述数据库对象的行访问的次数,对于所述数据库对象的数据操纵语言(DML)语句的数目,对于所述数据库对象的表扫描的次数,或者对于所述数据库对象的索引查寻的次数。
5.按照权利要求1所述的方法,其中所述活跃度条件还包含在所述数据库对象的创建时间之后的一段时间的过去。
6.按照权利要求1所述的方法,其中利用数据库的段级或块级热图,来判定对于所述数据库对象,所述活跃度条件被满足。
7.按照权利要求1所述的方法,其中对所述数据库对象的各行规定所述活跃度条件,并且其中信息生命周期管理任务对于所述数据库对象的满足所述活跃度条件的各行规定存档动作。
8.按照权利要求1所述的方法,其中在进行存档动作之前,使所述存档动作与也是对于保存的所述数据库对象的表示的另一个存档动作合并。
9.按照权利要求1所述的方法,其中存档动作包括把保存的所述数据库对象的表示移动到目标存储结构。
10.按照权利要求1所述的方法,其中存档动作包括把保存的所述数据库对象的表示压缩到目标压缩级别。
11.按照权利要求1所述的方法,其中保存的所述数据库对象的表示在表空间中,其中所述活跃度条件还包括表空间超过丰满度阈值,并且其中存档动作包括把表空间的最不活跃部分移动到目标表空间,以致所述表空间低于丰满度阈值。
12.一种包含配置成进行按照权利要求1-11任意之一所述的方法的一个或多个装置的设备。
13.一种包含指令的计算机可读存储介质,所述指令当由一个或多个处理器执行时,导致按照权利要求1-11任意之一所述的方法的执行。

说明书全文

策略驱动的数据放置和信息生命周期管理

技术领域

[0001] 本公开涉及数据库,更具体地,涉及策略驱动的数据放置和信息生命周期管理。

背景技术

[0002] 在政府和公司两种机构中,都速度不断增大地生成和保存数据。尽管一些业务数据几乎决不会失去其价值,不过,多数数据的有用性往往随着时间的过去而下降,直到对于几乎任何用途,它都不再具有另外的价值为止。通常,业务信息的价值往往在数据被创建之后不久是最大的,仅仅持续较短的一段时间,最多几年保持有用,之后,数据对业务的重要性、从而数据的一般使用开始下降。不过,许多业务受诸如法令之类各种因素约束,从而要求在数据的有用性已到期之后,长时间地保持数据。
[0003] 结果,常常观察到用户时常只不过访问10-20%的保存在数据库内的数据。其它80-90%的数据很少(如果有过的话)被用户访问,但仍然成为维持数据库所需的巨大存储成本的原因之一。更糟糕的是,随着数据库保存的数据量增大,归因于更慢的全表扫描和延长的应用升级,性能变得恶化。
[0004] 从而,面对不断增加的存储成本和恶化的系统性能,企业寻求有效管理其数据库的无用数据的方式。目前,许多企业试图通过借助于把无用数据从数据库中清除,并卸载到档案存储器中的第三方存档解决方案,实现所述目的。尽管这些解决方案有助于改善加速的数据产生的影响,不过,采用第三方存档解决方案的企业往往会解决一个问题,但带来许多其它问题。
[0005] 作为一个问题,第三方存档解决方案往往不熟悉数据库的格式和内容。例如,许多第三方存档解决方案只在文件系统层面起作用,于是,只能按文件的粒度进行存档。从而,尽管第三方存档解决方案能够卸载构成数据库的各个文件,不过,第三方存档解决方案不能有选择地卸载各个数据库元素。
[0006] 此外,第三方存档解决方案可根据文件级指标,比如文件被访问的频度或近度,检测无效数据,但是不能按单个数据库元素的粒度,检测闲置。从而,当数据库文件包含有用数据和无用数据时,第三方存档解决方案不能识别和只存档无用数据。把数据作为其中整个表,或者甚至整个数据库被包含在单个大文件的平面文件而保存在文件系统上的数据库实现会恶化这种问题。
[0007] 为了变通地解决第三方存档解决方案不能超出文件的粒度分离无用数据的问题,数据库管理者可改为人工把有用数据对象和无用数据对象分离成不同的数据库文件。例如,数据库管理者可明确地把无用数据对象移动到单独的表空间,该表空间随后可被卸载到档案存储器。然而,这种变通措施引入沉重的数据库管理负担,因为实现和验证所需的应用模式更改并非微不足道的任务。例如,要求数据库管理者根据重做日志,辨别数据存取模式,并开发定制脚本来分离无用数据。此外,为了执行模式更改,通常会保留离线数据库维护窗口,从而不利地影响数据库可用性。
[0008] 根据上面所述,需要一种在简化管理的同时,组织数据库中的无用数据的高效方式。
[0009] 本节中说明的方法是可推行的方法,不过不一定是以前已构思或推行的方法。于是,除非另有说明,否则不应认为在本节中说明的任何方法仅仅由于被包含在本节中而被当作现有技术附图说明
[0010] 附图中举例说明,而不是限制性地图解说明了本发明,附图中,相同的附图标记表示相似的元件,其中:
[0011] 图1A是按照实施例,描述用于策略驱动的数据移动和信息生命周期管理的例证数据库管理系统的方框图
[0012] 图1B是按照实施例,描述定义数据库管理系统中的数据移动和信息生命周期管理的策略的例证声明式语句语法的方框图;
[0013] 图1C是按照实施例,描述数据库管理系统中的数据移动和信息生命周期管理的例证策略的方框图;
[0014] 图1D是按照实施例,描述数据移动和信息生命周期管理的策略的例证评估的方框图;
[0015] 图1E是按照实施例,描述数据移动和信息生命周期管理的策略的例证评估的方框图;
[0016] 图1F是按照实施例,描述数据移动和信息生命周期管理的策略的例证评估的方框图;
[0017] 图1G是按照实施例,描述数据库管理系统中的数据移动和信息生命周期管理的例证自定义策略的方框图;
[0018] 图1H是按照实施例,描述数据库管理系统中的利用慢速存取模式的自动化信息生命周期管理的例证策略的方框图;
[0019] 图1I是按照实施例,描述利用慢速存取模式的自动化信息生命周期管理的策略的例证评估的方框图;
[0020] 图2是按照实施例,说明策略驱动的数据移动和信息生命周期管理的处理的流程图
[0021] 图3是可在其上实现实施例的计算机系统的方框图。

具体实施方式

[0022] 在下面的说明中,为了解释起见,记载了众多的具体细节,以便透彻理解本发明。然而,显然可在没有这些具体细节的情况下实践本发明。在其它情况下,以框图形式表示公知的结构和设备,以避免不必要地模糊本发明。
[0023] 总体概述
[0024] 在实施例中,数据库管理系统(“DBMS”)提供策略驱动的数据放置和信息生命周期管理。术语“信息生命周期管理”指的是在贯穿诸如数据库行或记录之类信息的有效寿命的各个生命周期阶段,从高关联性阶段到低关联性阶段,从创建到清除,所述信息的有效管理。为了在DBMS中实现信息生命周期管理,用户或数据库应用可指定声明式策略,所述声明式策略按照各种条件,定义保存的数据库对象到各个存储层的移动和变换。在一些实施例中,所述条件包括满足关于一个或多个数据库对象的活跃度条件(activity-level condition),所述一个或多个数据库对象可包括继承子对象和分组的从属对象。策略与数据库对象关联,也可继承自关于父数据库对象的策略。
[0025] 策略对于数据库对象定义要采取的存档动作、范围和在触发存档动作之前的条件。存档动作可包括压缩,数据移动,表聚类,和把数据库对象放入对数据库对象的生命周期阶段来说适当的存储层的其它动作,其中所述存储层可代表一种存储介质,和/或用于压缩或把数据保存在所述存储介质上的技术,如下在数据库系统中进一步定义的一样。
[0026] 在一些实施例中,策略可以是自定义策略,所述策略对于数据库对象定义评估相关的数据库对象,以判定是否触发存档动作的自定义函数。自定义函数是用户定义的,并被登记到数据库中,可灵活地包括利用数据库内外的数据信息资源的任何定制逻辑,所述数据信息资源包括诸如级热图,段级热图和更高级别的热图之类的数据库访问统计信息,如在发明名称为“Tracking Row and Object Database Activity into Block Level Heatmaps”的专利中更充分所述。借助应用编程接口(API),可揭示访问统计信息。
[0027] 范围可被定义为段、组或行。
[0028] 条件可指定满足最短的闲置时期的数据库对象,它可基于从数据库的段级或块级热图获得的访问统计信息,如在发明名称为“Tracking Row and Object Database Activity into Block Level Heatmaps”的专利中更充分所述。
[0029] 条件还可指定满足活跃度条件(比如慢速存取模式或慢速存取级别)的数据库对象。可选地,也可对于最短时期,指定活跃度条件。活跃度条件是否被满足的判定可以利用一个或多个准则,包括数据库对象的访问统计信息,比如单一行访问的次数,全表扫描的次数,数据操纵语言(DML)语句的数目,和索引查找的数目。访问统计信息可以从数据库的段级或块级热图获得,如在发明名称为“Tracking Row and Object Database Activity into Block Level Heatmaps”的专利中更充分所述。所述一个或多个准则可包括把数据库对象的当前压缩级别改变成存档动作指定的目标压缩级别的一个或多个成本。从而,策略可提供考虑数据库对象的各个可能的存储层的访问特性、优点和缺点的数据优化。
[0030] 可以基于可调整的周期来评估策略,其中对于满足活跃度条件的各个数据库对象进行相关的存档动作。资源感知任务调度器可把存档动作排队成供处理的任务,从而允许开销和数据库性能影响最小地在后台自动执行所述任务。从而,策略可用于把压缩和其它高开销动作延迟到后台。在效率可能更高的情况下,关于相同数据库对象的动作也可被合并。
[0031] 由于策略评估是在无任何用户干预的情况下在后台进行的,从而管理和执行任务局限于策略的初始定义。通过定义关于表空间或表的策略,并利用策略继承,也可在无任何用户干预的情况下,自动使策略与未来的数据库对象关联。可视情况定义自定义函数,以如数据库用户所需结合任何业务逻辑,从而允许按照特定的业务需求调整策略,并集成在数据库之外的逻辑和数据信息资源。在一些实施例中,数据库管理系统可利用涉及对于每种数据访问,各个存储层的优点和缺点的知识,确定数据库对象的访问成本,从而使数据优化动作自动发生,而不需要用户理解和设定优化用详细参数。可以下至行范围地指定存档动作,从而允许按行的最细粒度,优化无用数据。从而,数据库管理系统可以细粒度优化,实现策略驱动的数据移动和信息生命周期管理,同时保持高性能和低维护。
[0032] 数据库系统
[0033] 本发明的实施例用在DBMS的上下文中。于是,对DBMS的说明是有益的。
[0034] DMBS管理数据库。DBMS可包含一个或多个数据库服务器。数据库包含保存在持久性存储机构,比如一组硬盘上的数据库数据和数据库词典。数据库数据可被保存在一个或多个数据容器中。每个容器包含记录。每条记录内的数据被组织成一个或多个字段。在关系DBMS中,数据容器被称为表,记录被称为行,字段被称为列。在面向对象数据库中,数据容器被称为对象类,记录被称为对象,这里也被称为对象记录,字段被称为属性。其它数据库体系结构可利用其它术语。
[0035] 数据库词典(这里也称为数据词典)包含定义物理或逻辑地包含在数据库中的数据库对象的元数据。实际上,数据库词典定义整个数据库。数据库对象包括表、索引、视图、列、数据类型、用户、用户权限和用于保存数据库对象数据的存储结构,比如表空间。
[0036] 表空间是把相关的逻辑结构集中在一起,并且包含一个或多个物理数据文件的数据库存储单元。这些逻辑结构可包括段,或者关于特定数据库对象,比如表、表簇或索引的空间的分配。段可包含在一个数据文件中,或者可以跨越多个数据文件。段可利用一组区间(extent)定义,其中区间包含一个或多个连续的数据库块。
[0037] 数据库块(也称为数据块)是永久存储器的单元。数据库服务器利用数据库块保存数据库记录(例如,保存表的各行,保存列的列值)。当从永久存储器读取记录时,包含所述记录的数据库块被复制到数据库服务器的易失性存储器的数据库块缓冲器中。数据库块通常包含多行,以及控制和格式化信息(例如,相对于表示行或其它数据结构的字节序列的偏移量,影响行的事务的列表)。
[0038] 数据库块被称作是原子的,至少部分因为数据库块是数据库服务器可从永久存储设备请求的数据库数据的最小单元。例如,当数据库服务器寻找保存在数据库块中的行时,数据库服务器只可通过读入整个数据库块,从永久存储器读取所述行。
[0039] 诸如表空间或段之类的数据库对象可被分配给特定的存储层。存储层表示存取速度和存储成本之间的特定平衡。每个存储层可代表不同类型或质量的存储介质。通常,随着存储介质的存取速度增大,购买所述存储介质的价格往往也增大。结果,许多企业具有数量有限的存取速度最快的高级存储空间,和数量大得多的存取速度较慢、不过批量购买更便宜的第二或第三存储空间。从而,为了使DBMS的性能达到最大,操作关联性较高的数据可被放在较快的存储介质,比如最优先的磁盘驱动器上,而操作关联性较低的数据可被放在较慢的存储介质,比如光盘或磁带驱动器上。
[0040] 每个存储层还代表利用不同技术压缩数据的存储区域。类似于存储介质的选择,这种情况下,每种压缩技术也代表存取速度和存储空间之间的折衷。更具体地,实现较高压缩比的压缩技术也往往在访问数据时,花费较长时间解压缩。从而,为了使数据库管理系统的性能达到最高,可以不压缩地保存操作关联性较高的数据,以允许更快地访问,而操作关联性较低的数据可被压缩,以节省空间。存储层可代表存储介质和用于压缩或把数据保存在存储介质上的技术两者的组合。
[0041] 通过向数据库服务器提交使数据库服务器对保存在数据库中的数据进行操作的命令,用户与DBMS的数据库服务器交互作用。用户可以是在与数据库服务器交互作用的客户端计算机上运行的一个或多个应用。这里,也可把多个用户集体称为用户。
[0042] 数据库命令可以呈遵守数据库语言的语法的数据库语句的形式。表述数据库命令的一种例证语言是结构化查询语言(SQL)。SQL数据定义语言(“DDL”)指令被发送给DBMS,以定义诸如表、视图或复杂数据类型之类的数据库结构。例如,CREATE、ALTER、DROP和RENAME是存在于一些SQL实现中的DDL指令的常见例子。SQL数据操纵语言(“DML”)指令被发送给DBMS,以管理保存在数据库结构内的数据。例如,SELECT、INSERT、UPDATE和DELETE是存在于一些SQL实现中的DML指令的常见例子。SQL/XML是当在面向关系数据库中操纵XML数据时使用的SQL的常见扩展。
[0043] 尽管上面说明的例子基于Oracle的SQL,不过,这里提供的技术并不局限于Oracle的SQL,任何专有形式的SQL,任何标准化版本或形式的SQL(ANSI标准),或者任何特定形式的数据库命令或数据库语言。此外,为了简化包含于此的说明,数据库命令或者其它形式的计算机指令可被描述成进行动作,比如创建表,修改数据和设定会话参数。不过,应明白命令本身不进行任何动作,而是在执行命令时,DBMS进行对应的动作。从而,如这里使用的这种陈述旨在作为用于当由DBMS执行时,使DBMS进行对应动作的命令的简写。
[0044] 在多数情况下,DBMS以一个或多个事务,对数据库进行的多组不可分割操作的形式,执行数据库命令。从而,在执行给定事务之后,使数据库处于所有事务的操作都已被进行,或者所有事务的操作都未被进行的状态。尽管实现可能不同,不过多数事务是通过1)开始事务,2)执行一个或多个数据操纵或查询,3)提交事务(如果在执行期间未发生错误的话),和4)返回事务(如果在执行期间发生错误的话)进行的。从而,DBMS可保持记录对数据库的提交和/未提交更改的日志。例如,在SQL的一些实现中,执行数据库命令可向REDO和UNDO日志增加记录,REDO和UNDO日志可用于实现返回、数据库恢复机制和诸如闪回查询之类的特征。
[0045] 多节点数据库管理系统由共享对相同数据库的访问的互连节点构成。一般,节点通过网络互连,并且程度不同地共享对共用存储器的访问,例如,共享对一组磁盘驱动器和保存在上面的数据库块的访问。多节点数据库系统中的节点可以呈通过网络互连的一组计算机(例如,工作站,个人计算机)的形式。另一方面,节点可以是网格的节点,所述网格由呈与机架上的其它服务器刀片互连的服务器刀片形式的节点构成。
[0046] 多节点数据库系统中的各个节点托管数据库服务器。诸如数据库服务器之类的服务器是集成的软件组件和用于在处理器上执行集成的软件组件的计算资源(比如存储器、节点和进程)的分配的组合,软件和计算资源的组合专用于代表一个或多个客户端来实现特定功能。
[0047] 来自多节点数据库系统中的多个节点的资源可被分配,以运行特定数据库服务器的软件。软件和来自节点的资源的分配的每种组合是这里称为“服务器实例”或“实例”的服务器。数据库服务器可包含多个数据库实例,一些或所有的所述数据库实例运行于独立的计算机(包括独立的服务器刀片)上。
[0048] 系统概述
[0049] 图1A是按照实施例,描述用于策略驱动的数据移动和信息生命周期管理的例证数据库管理系统100的方框图。图1A包括数据库管理系统100、网络170和业务逻辑服务器172。数据库管理系统100包括数据库服务器实例110和数据库120。数据库服务器实例110包括过程扩展112和任务调度器115。过程扩展112包括自定义函数113和信息生命周期管理(ILM)包114。任务调度器115包括后台策略评估器116和ILM活动任务118。数据库120包括表空间
130A、表空间130B和数据词典140。表空间130A包括表132。表132包括表分区133。表分区133包括数据库块134A和数据库块134B。数据库块134A包括行136A和行136B。数据库块134B包括行136C和行136D。数据词典140包括ILM策略表142,策略-对象关联表144,ILM任务表146和用户过程表148。
[0050] 尽管数据库管理系统100只表示了单个数据库服务器实例110,不过,实施例可包括由一个或多个节点支持的多个数据库服务器实例。从而,数据库管理系统100可以是多节点数据库系统。此外,尽管数据库120被表示成保存在单个存储元件上,不过,数据库120可由任意类型的底层存储卷(比如分层存储器和跨多个本地和/或网络化物理磁盘的磁盘阵列)支持。例如,表空间130A可被保存在成本高、性能高的固态磁盘阵列上,而表空间130B可被保存在成本低的硬盘驱动器上。利用自动存储管理器、逻辑卷管理器、群集式文件系统或另一个存储层,可以面接(interface)存储卷。
[0051] 数据库服务器实例110是数据库120的服务器实例。通过利用发送给数据库服务器实例110的新的ILM语句,可以定义数据库120的ILM策略。数据库服务器实例110还可借助过程扩展112,例如,通过支持过程语言/结构化查询语言(PL/SQL),支持过程命令。从而,也可提供ILM包114,从而允许数据库用户和应用进行ILM策略的高级管理和定制。
[0052] 在一些实施例中,ILM策略可被硬编码。在其它实施例中,可在由数据库管理系统100提供的配置文件中,定义ILM策略。按照这种方式,数据库管理系统100可提供自动化ILM配置,而不要求用户具体陈述各个策略组成。例如,数据库管理系统100可分析可用表空间,压缩级别,用户数据和活动模式,并基于此,明确表达全面的ILM规划和实现ILM规划的策略数据。
[0053] 自定义函数113可包括实现供自定义ILM策略使用的定制逻辑的任何可选的用户定义的自定义函数,并可用数据库120支持的任何语言(包括PL/SQL和Java)被编写成过程函数。自定义函数113可被先前登记到数据库120中,作为元数据被保存在用户过程表148内。
[0054] 自定义函数113的定制逻辑可视情况利用内部数据库访问统计信息,比如段或块级热图,访问关于数据库对象的各种有用信息,包括最后访问时间,最后修改时间和创建时间,所述各种有用信息可用于得出最小读静止时段,最小写静止时段,或者自创建时间以来的时间长度。访问统计信息可不被直接揭示,而是改为可被外部化,并通过应用编程接口(API)暴露给自定义函数113,如下面在热图统计信息API标题之下更详细所述。
[0055] 在一些实施例中,通过经网络170从业务逻辑服务器172访问数据,自定义函数113可访问在数据库管理系统100之外的数据信息源,网络170可包括诸如因特网或本地企业内部网之类的网络。业务逻辑服务器172可以是提供内部逻辑和服务的内部服务器,或者提供公共和第三方逻辑和服务的公共服务器。
[0056] 一旦策略子句被数据库服务器实例110接收,它就可被解析并保存在数据词典140的ILM策略表142内。在策略-对象关联表144内,策略可以与特定的数据库对象关联。由于策略可以继承自父对象,因此策略-对象关联表144可在数据库120内的不同范围把策略映射到各个数据库对象。例如,关于表空间130A规定的策略可在表空间范围,与表空间130A关联,在表范围,与表132关联,在表分区范围,与表分区133关联。此外,在表空间130A中创建的任何新的或者未来的数据库对象也将继承关于表空间130A规定的策略。
[0057] 任务调度器115可以是可根据空闲资源(比如存储器和处理周期)调度和把任务委派给数据库实例的多实例和资源感知任务调度器。按可定制的周期性时间表,后台策略评估器116可评估ILM策略表142中的各个策略。如果策略使其条件相对于策略-对象关联表144中的任何映射被满足,那么可对于该映射生成任务,结果任务被排队到ILM任务表146中。对于特定数据库对象只可发生一次的策略在触发之后可被禁止,以减小未来的解析时间。
[0058] 任务调度器115可在后台工作,消耗ILM任务表146中的队列,以按照可用资源,比如存储器和处理器周期,把任务委派给数据库实例。从而,来自ILM任务表146的任务可被载入ILM活动任务118,供可在数据库120在线时发生的数据库服务器实例110执行。运行中的ILM任务的进行状态和完成或失败的ILM任务的结果也可被保持在ILM任务表146内。诸如重做和取消记录之类的数据库管理系统100的数据结构可被用于返回、恢复和重试失败的ILM任务。
[0059] 热图统计信息API
[0060] 可以提供在各种范围,使数据库对象的热图统计信息外部化的API。通过利用定义的数据库视图,或者借助其它接口,可利用PL/SQL函数的PL/SQL包,实现所述API。API内的函数随后可在自定义函数113内使用,以实现数据库用户期望的任何定制逻辑。这些API函数的使用是可选的,定制逻辑可完全独立于API函数。下面以PL/SQL包“dbms_heat_map”的形式,说明例证的热图统计信息API。
[0061] dbms_heat_map的函数BLOCK_HEAT_MAP接受表段,作为输入,并返回块级热图记录,包括表段中的各个数据库块的修改时间。修改时间可包括最大或最后修改时间。每条记录还可包括其它识别数据,比如相关的数据库块编号和文件编号。可选地,可以指定排序列和排序次序,以对返回的记录排序。
[0062] dbms_heat_map的函数EXTENT_HEAT_MAP接受表段,作为输入,并返回区间级热图信息,包括从关于各个区间中的数据库块的集合统计信息得到的表段中的各个区间的一个或多个最后修改时间。一个或多个最后修改时间可包括最小值、最大值和平均值。
[0063] dbms_heat_map的函数SEGMENT_HEAT_MAP接受段作为输入,并返回段级热图信息,包括所述段的一个或多个访问时间。所述一个或多个访问时间可包括读取时间、写入时间、全文搜索时间和查找时间,各个访问时间可包括最小值、最大值和平均值。如果特定种类的访问不适用于所述段,或者从未发生过,那么可以提供零值、空值或者其它预置值。
[0064] dbms_heat_map的函数OBJECT_HEAT_MAP接受表对象,并返回对象级热图信息,包括对于属于表对象的所有段的访问时间。例如,表对象可以是具有在不同段中的几个表分区的表。对于表对象中的各个段,OBJECT_HEAT_MAP函数可返回基本上与SEGMENT_HEAT_MAP函数提供的段级热图信息类似的段级热图信息。
[0065] dbms_heat_map的函数TABLESPACE_HEAT_MAP接受表空间,并返回表空间级热图信息,包括从关于表空间内的段的集合统计信息得到的表空间的一个或多个访问时间。所述一个或多个访问时间可包括读取时间、写入时间、全文搜索时间和查找时间,各个访问时间可包括最小值、最大值和平均值。如果特定种类的访问不适用于段,或者从未发生过,那么可以提供零值、空值或者其它预置值。此外,可以返回段总计数和分配的字节大小。
[0066] 除了dbms_heat_map中的函数之外,还可提供定义的数据库视图,以揭示热图信息。例如,定义的视图DBA_HEAT_MAP_SEGMENT可提供大体和SEGMENT_HEAT_MAP函数相同的信息,定义的视图DBA_HEAT_MAP_SEG_HISTOGRAM可提供特定段的经过一段时间的汇总访问直方图。
[0067] 处理概述
[0068] 在基本概述了数据库管理系统100的情况下,回顾定义和执行ILM策略的处理步骤的高级概况是有益的。参见图2,图2是按照实施例,说明策略驱动的数据移动和信息生命周期管理的处理200的流程图。
[0069] 接收声明式策略语句
[0070] 在处理200的方框202,参见图1A,数据库服务器实例110接收策略,以与数据库120中的数据库对象关联,所述策略规定触发对于保存的数据库对象的表示的存档动作的条件。在一些实施例中,数据库服务器实例110还响应收到来自请求登记自定义函数的用户的用户输入,记录自定义函数。下面在标题自定义函数记录下,详细说明所述记录。如上所述,策略可被规定为从数据库客户端用户或应用接收的数据库命令中的ILM策略子句的一部分。图1B中表示了ILM策略子句的语法的详细分解。
[0071] 图1B是按照实施例,描述定义数据库管理系统中的数据移动和信息生命周期管理的策略的例证声明式语句语法的方框图。图1B的图表101包括策略创建语句150,策略管理语句151,对象子句152A,动作子句152B,范围子句152C,条件子句152D和自定义函数创建语句153。
[0072] 策略创建语句150表示创建ILM策略的数据库语句的各个组成子句。首先是{OBJECT}子句,该子句创建或修改数据库对象。之后是关键字“ILM ADD”,它指示正在为在{OBJECT}中创建或修改的数据库对象定义新的ILM策略。在“ILM ADD”关键字之后,可向ILM策略赋予友好的[POLICY_NAME];要不然,可利用POLICY关键字,自动生成模式独特的策略名称。策略名称之后是指定ILM策略的细节的各个组成:用于对数据库对象执行的存档动作的{ACTION},用于范围的{SCOPE},和用于在触发存档动作之前的条件的{CONDITION}。
[0073] 策略对象子句
[0074] 如上所述,{OBJECT}子句创建或修改数据库对象。从而,对象子句152A中表示创建表、修改表和修改表分区的例子。在创建或修改表空间的情况下,总是在结尾附加关键字“DEFAULT”,以强调附着于表空间的策略分级地传播到表空间的子对象。从而,表空间内的任何未来创建的表、表分区、索引和其它数据库对象将默认继承定义的策略。尽管未在对象子句152A中明确未出,不过,也可全模式地定义策略,从而影响特定数据库用户的所有数据库对象。
[0075] 策略动作子句
[0076] {ACTION}子句规定对保存的{OBJECT}的表示进行的ILM存档动作。如上所述,存档动作把数据对象放入对数据库对象的生命周期阶段来说适当的存储层中,其中所述存储层可代表一种存储介质,和/或用于压缩或把数据保存在所述存储介质上的技术。动作子句152B表示4种例证的存档动作。第一个例证存档动作压缩到目标CompLevel,按照从最低压缩级别到最高压缩级别的顺序,CompLevel可包括OLTP、QUERY LOW、QUERY HIGH、ARCHIVE LOW和ARCHIVE HIGH。OLTP级别可视情况指定“INPLACE”关键字,以防止行被移动和合并,从而避免索引重建。
[0077] 第二个例证存档动作“TIER TO”导致数据库对象进入目标存储容器,比如表空间中的数据移动。一般,这用于把无用数据从高成本表空间移动到低成本表空间,比如从图1A中的表空间130A移动到表空间130B。可选地,可以指定[READ ONLY]关键字,以在移动数据库对象之后,把目标表空间标记为只读,这有助于加速备份操作。
[0078] 第三个例证存档动作用指定的聚簇和聚族关键字,聚集表。通过聚集表,可使一起被访问的数据在空间上在同一地点,以改善性能。
[0079] 第四个例证存档动作禁止对于特定数据库对象的索引。当数据库对象是被分成表分区的表时,那么该动作可用于实现部分索引,从而减小全局索引的规模和深度。
[0080] 也可规定未在动作子句152B中具体列出的其它存档动作。例如,可以规定“move”存档动作,以重建和重新排序诸如索引排序表之类的数据库对象。
[0081] 策略范围子句
[0082] {SCOPE}子句指定关于数据库对象的范围。如在范围子句152C中所示,定义3个范围。SEGMENT只涉及包含数据库对象的段,例如,表的段。GROUP涉及SEGMENT,以及任何从属对象,比如索引和大对象(LOB)。ROW涉及数据库对象的各行。例如,如果关于数据库表的ROW{SCOPE}指定COMPRESS FOR{ACTION},那么只有满足规定{CONDITION}的数据库表中的那些各行被压缩,其它各行保持原样。
[0083] 策略条件子句
[0084] {CONDITION}子句关于{OBJECT},指定在规定的{ACTION}被触发之前的前提。表示了2个例证子句;第一个例证子句涉及应随同{OBJECT}调用的特定CustomFunction。CustomFunction可以是返回TRUE或FALSE值的布尔函数。如果返回TRUE,那么条件被满足,从而{ACTION}被触发。
[0085] 条件子句152D中的第二个例证子句规定必须满足特定状态的最小时段,其中所述时段由天数、月数或年数定义。可为诸如关于数据库对象的慢速存取模式(LOW ACCESS)的活跃度条件,为关于数据库对象的无访问或读和写静止(NO ACCESS),为关于数据库对象的无修改或写静止(NO MODIFICATION),或者为自数据库对象的创建时间(CREATION)以来的时段,定义最小时段。为了确定最小时段是否被满足,可以利用可从数据库的段或块级热图获得的各种访问统计信息。对于活跃度条件,在所述确定中可以使用一个或多个准则,包括各种访问统计信息,和在执行子句之后从当前压缩级别变成目标压缩级别的一个或多个成本。在某些{ACTION}子句,比如“TIER TO”子句的情况下,{CONDITION}子句可被省略,因为“TIER TO”子句可隐含地指示“ON FULLNESS THRESHOLD”条件,其中数据库对象的存储容器,比如表空间满足丰满度阈值
[0086] 自定义函数登记
[0087] 由于在利用调用CustomFunction的任何策略之前,CustomFunction首先必须存在,因此类似于自定义函数创建语句153,用户以数据库命令的形式提供用户输出,以定义和请求把一个或多个用户定义的自定义函数记录到数据库120中。如图所示,每个登记语句定义自定义函数的名称(“CustomFunction”),一个或多个输入自变量(“objn IN NUMBER”),返回值类型(“RETURN BOOLEAN”),和执行用户定义的逻辑的实现或代码。作为响应,数据库管理系统100可在为保存用户定义的过程、函数和包而专保留的用户过程表148中加入或者更新元数据。在数据库服务器实例110启动之后,过程扩展112可从用户过程表148取回保存的自定义函数113,以服务来自后台策略评估器116的任何自定义函数调用。
[0088] 如在自定义函数创建语句153中所示,“objn IN NUMBER”定义输入参数,所述输入参数可对应于相关数据库对象的对象编号。在其它实施例中,代替对象编号,可以传递指针。在函数的主体内,可以实现任何用户定义的自定义逻辑,如上所述,所述用户定义的自定义逻辑可以访问内部和外部数据源。以BOOLEAN TRUE或FALSE值的形式,返回最终结果,其中TRUE指示应对数据库对象执行策略的{ACTION}。
[0089] 尽管自定义函数113的实现代码可被保存为用户过程表148的一部分,不过,实现代码的一些部分可在数据库120之外。例如,可从在数据库120之外的位置,比如业务逻辑服务器172调用外部C或Java可执行文件或动态链接库。这种情况下,代替实际的实现代码,用户过程表148可只保存对外部函数的调用。
[0090] 策略关联
[0091] 一旦按照在策略创建语句150中所示的语法收到策略语句,数据库服务器实例110可解析策略语句,把解析的策略记录在ILM策略表142中。另外,可使策略与数据库对象{OBJECT}关联,以及按照策略继承,与所有的子数据库对象关联。这些关联可被记录在策略-对象关联表144中。
[0092] 为了防止用户超越其权限等级,数据库服务器实例110可在关联策略之前,确认创建{CONDITION}子句中的自定义函数的用户具有{OBJECT}的所有权,任务调度器115可把根据该策略生成的任何任务的执行权限限制到所述用户的相同权限。
[0093] ILM策略管理
[0094] 在对于数据库对象创建策略之后,通过利用在策略管理语句151中所示的语法,对于该数据库对象及其子对象,可以允许、禁止或删除所述策略。另外,可以利用ILM包114提供高级策略管理特征。例如,策略可被指定在特定的优先级执行,这会影响任务调度器115的调度决策。另外,可以配置并行任务作业执行的最大数目,可以一般地对于所有ILM任务,和/或对于特定的ILM任务作业,指定资源利用平。还可强制策略立即执行其存档动作,而不管其条件是否被满足。
[0095] 另外,策略可被设定成按照规定的时间表评估。默认地,后台策略评估器116可按照周期时间间隔,例如每15分钟,或者按由数据库管理者校准的另一个时间间隔,评估ILM策略表142中的所有策略。不过,对需要较长时间来评估其条件的某些策略来说,这样的时间间隔可能过于频繁。在这种情况下,策略可被设定成在排定的维护窗口期间,或者按照定制的时间表,而不是默认的15分钟的周期时间间隔评估。从而,创建策略的用户或数据库管理者可进一步指定策略特有的定制时间表。按照这种方式,可按照不同的时间表,例如每15分钟,每天,每周和在维护窗口期间,集合策略条件的评估。
[0096] 第一ILM使用情况
[0097] 为了提供利用上述语法的记录的ILM策略的例子,图1C是按照实施例,描述数据库管理系统中的数据移动和信息生命周期管理的例证策略的方框图。图1C的示图102包括数据词典140。数据词典140包括ILM策略表142。ILM策略表142包括策略143A、策略143B、策略143C和策略143D。就图1C来说,编号相同的元件对应于图1A的相同元件。
[0098] 行压缩策略
[0099] ILM策略表142包含示范数据库120的例证ILM使用情况的几个策略。例如,为了在维持高性能的同时,压缩处于关联性高的生命周期阶段的新数据,数据库管理者可能希望在一天无任何修改之后,利用OLTP压缩,压缩主CompanyTS表空间中的各行,如策略143A反映的那样。由于策略143A是关于CompanyTS表空间规定的,因此它被继承到所有未来的子对象,包括表142或Orders表,和表分区133或Orders_2012分区。由于策略143A是在行范围规定的,因此只有至少一天未被修改的那些行才利用OLTP压缩被压缩;在最近1天内被修改的其它各行仍然未被压缩,以便快速修改。
[0100] 注意,策略143A实际上把压缩推延到后台,因为在满足1天无修改之后,使所述压缩只是作为ILM任务排队,ILM任务由任务调度器115在后台分发。按照这种方式,在行插入时,一般为前台操作的资源密集压缩操作现在可作为后台操作被推延,从而维持较低的数据库等待时间。
[0101] 表分区压缩策略
[0102] 之后,如果Orders表的表分区持续1月未被修改,那么表分区应被压缩到较高的QUERY HIGH压缩级别,如在策略143B中反映的那样,以反映关联性中等的生命周期阶段。例如,Orders表可按年的次序被分区,Orders_2012表示2012年的所有定单。由于策略143B是关于Orders表规定的,因此Orders表的所有表分区也继承策略143B。从而,如果Orders表的任意表分区无任何修改地闲置1个月,那么该表分区可被压缩到QUERY HIGH级别。由于范围被指定为GROUP,因此所有从属索引和LOB也被压缩。
[0103] 自动丰满度存储分层策略
[0104] 如果在CompanyTS表空间中,空间不够用,那么Orders表的最不活跃的表分区应被自动卸载到ArchiveTS表空间中的低成本存储器,如在策略143C中反映的那样。如前所述,“TIER TO”动作隐含地指示“ON FULLNESS THRESHOLD”条件。从而,一旦CompanyTS达到特定的丰满度阈值(它是可配置的值)之上,那么Orders表的表分区按照活动最少的顺序,被移动到ArchiveTS表空间,直到CompanyTS的丰满度低于丰满度阈值为止。例如,Orders表中的表分区可按照数据库活动被排序,优先移动如用最后访问或修改时间指示的最不活跃的分区。从而,10年前最后访问的Orders_2000表分区将在1天前最后访问的Orders_2012表分区之前被移动。由于范围被指定为GROUP,因此所有从属索引和LOB也被移动。
[0105] 注意,即使Orders表的所有表分区都高度活跃,当CompanyTS超过丰满度阈值时,这些高度活跃的表分区中的最不活跃者仍然将被分层到ArchiveTS表空间。取决于数据库管理者的操作目的,把高度活跃的数据分层到低成本表空间也许并不合意。从而,在创建具有“TIER TO”动作子句的策略之前,数据库管理者可能想要考虑待分层的数据库对象的活动模式,包含该数据库对象的表空间的总大小和可用的自由空间,表空间的潜在扩展能,以及特定的丰满度阈值设定。
[0106] 存档策略
[0107] 为了保留存储空间,策略143D规定在60天无修改之后,Orders(表)应被压缩到ARCHIVE HIGH压缩级别。由于在把段从CompanyTS移动到ArchiveTS表空间的策略143C之后,可立即触发策略143D,因此可能可创建ILM任务,以把这两个任务合并成一个操作。
[0108] 策略评估
[0109] 在建立例证的一组记录的ILM策略之后,通过对应于在方框202接收的特定策略来利用策略143A,可继续处理200。从而,在处理200的方框204,参见图1A,数据库服务器实例110评估策略143A,以确定对于表空间130A(CompanyTS)中的数据库对象,条件被满足。由于范围是在行范围指定的,因此可以利用策略-对象关联表144找出继承策略143A并且包含用于测试条件的各行的表空间130A的子对象。为了简单起见,从策略-对象关联表144中,只识别了表分区133(Orders_2012)。
[0110] 参见图1D,图1D是按照实施例,描述数据移动和信息生命周期管理的策略的例证评估的方框图。图1D的示图103包括后台策略评估器116、ILM任务表146和表分区133。后台策略评估器116包括访问统计信息160。访问统计信息160包括访问统计信息162A和访问统计信息162B。ILM任务表146包括ILM任务147。表分区133包括数据库块134A和数据库块134B。数据库块134A包括行136A、行136B和自由空间137。数据库块134B包括行136C和行
136D。就图1D来说,编号相同的元件对应地图1A的相同元件。
[0111] 后台策略评估器116在时间T1,开始关于表分区133(Orders_2012)的策略143A的评估。如前所述,评估可按默认的周期性时间间隔或15分钟,或者按自定义的时间表发生。从而,T1可指示当周期性时间间隔或自定义时间表被触发时的时间。
[0112] 在时间T1,后台策略评估器116可例如利用数据库120的段或块级热图,计算访问统计信息160。数据库120的块级热图可指示数据库120内的数据库块的诸如最后访问时间、最后修改时间和创建时间之类的活动。如在访问统计信息160中所示,就在时间T1的Orders_2012来说,最后访问时间为15分钟前,最后修改时间为15分钟前,创建时间为1周前。如在访问统计信息162A中所示,就在时间T1的数据库块134A来说,最后访问时间为从没有,最后修改时间为1天前,创建时间为1周前。如在访问统计信息162B中所示,就在时间T1的数据库块134B来说,最后访问时间为15分钟前,最后修改时间为15分钟前,创建时间为1周前。
[0113] 策略143A被定义为行范围策略,条件是“AFTER 1 DAY OF NO MODIFICATION”。从而,可以搜索访问统计信息160,寻找具有指示1天或更长的“Last Modified”时间的访问统计信息的指定数据库对象的所有数据库块。访问统计信息162A满足该条件,指示数据库块134A内的所有行已至少1天未被修改。
[0114] 任务排队
[0115] 在处理200的方框206,参见图1A和图1D,数据库服务器实例110对保存在数据库块134A中的各行进行存档动作,其中所述进行响应方框204的判定。在实施例中,所述进行可以是使ILM任务147排队,以对保存在数据库块134A中的各行进行存档动作。从而,可使ILM任务147在ILM任务表146中排队。由于方框204判定数据库块134A满足策略143A的条件,因此如图所示,填充ILM任务147,指示将对数据库块134A内的Orders_2012的各行进行的策略
143A,或者说“BackgroundCompressAllRows”策略。
[0116] 由于在本例中利用块级热图,因此认为对于数据库块内的一组行,行范围策略的条件被满足。在备选实施例中,如果使用行特有的统计信息数据源,而不是块级热图,例如通过利用保存在各个数据行的附加统计信息列中的访问统计信息,那么可对于各行,而不是数据库块内的各组行,使关于数据库对象的任务排队。在专利“Techniques for Activity Tracking,Data Classification,and In Database Archiving”中,说明了这种附加统计信息列。
[0117] 如在ILM任务147中所示,任务最初被设定成“Inactive”状态,从而等待执行。任务调度器115可自动从ILM任务表146中的队列中,取回和委派ILM任务147。不过,在一些情况下,数据库管理者可能希望在允许执行之前,查看任务队列和人工批准任务。这种情况下,任务调度器115可以只处理用户批准的ILM任务表146中的排队任务。
[0118] 任务执行
[0119] 在使ILM任务147出列之后,数据库服务器实例110执行ILM任务147。例如,任务调度器115可处理ILM任务表146中的任务队列,以把ILM任务147委派给特定数据库实例,例如,作为数据库服务器实例110的ILM活动任务118的一部分。ILM任务147的状态从而可被更新为“Active”。
[0120] 在数据库服务器实例110执行在ILM任务147中指定的存档动作之后,出现如图1D中所示的表分区133的结构,其中数据库块134A中的行136A和136B被压缩到OLTP压缩级别。由于在策略143A的动作子句中指定“INPLACE”关键字,因此在数据库块之间不移动任何行,在数据库块134A内,只保留自由空间137,自由空间137可用于保存稍后插入的附加行。包括行136C和136D的数据库块134B保持未压缩。ILM任务147的状态可被更新为“Completed”,ILM任务147可从ILM活动任务118中被除去。
[0121] 评估表分区压缩
[0122] 在回顾关于策略143A的处理200的情况下,回顾关于另一个例证策略,比如策略143B的处理200的最终结果是有益的。参见图1E,图1E是按照实施例,描述数据移动和信息生命周期管理的策略的例证评估的方框图。图1E的示图104包括后台策略评估器116、ILM任务表146和表分区133。后台策略评估器116包括访问统计信息160。访问统计信息160包括访问统计信息162A和访问统计统计信息162B。ILM任务表146包括ILM任务147。表分区133包括数据库块134A。数据库块134A包括行136A、行136B、行136C和行136D。就图1E来说,编号相同的元件对应于图1A的相同元件。
[0123] 在图1E中,可按照如上所述的类似方式,不过是对于策略143B,进行处理200。由于条件是“AFTER 1 MONTH OF NO MODIFICATION”,因此在时间T2,可以利用访问统计信息160确定对表分区133(Orders_2012)的最后修改是1月零15分钟之前,时间T2出现在时间T1之后1个月时。注意,由于策略143B是组范围,或者具有从属对象的段范围,因此不必利用更详细的块级访问统计信息162A和162B了。在段范围满足所述条件的情况下,于是相对于Orders_2012和为了简单起见而被省略的任何从属对象(比如索引和LOB),使ILM任务147排队。
[0124] 图1E的表分区133反映在ILM任务147完成,并且执行存档动作“COMPRESS FOR QUERY HIGH”之后的状态。注意,由于表空间133的整个段被压缩到“Query High”级别,可从零开始重新创建所有的数据库块,以合并各行。从而,通过利用“Query High”压缩级别,单个数据库块134A现在足以保存所有4行136A-136D。数据库块134B空闲,从而可用于保存其它数据。
[0125] 评估合并任务
[0126] 在一些情况下,多个任务可被合并成单一操作,以便性能和效率更高。图1F中表示了一个例子,图1F是按照实施例,描述数据移动和信息生命周期管理的策略的例证评估的方框图。图1F的示图105包括后台策略评估器116、ILM任务表146、表空间130A和表空间130B。后台策略评估器116包括访问统计信息160,它包括访问统计信息162。ILM任务表146包括ILM任务147。表空间130A包括表132。表空间130B包括表分区133。表分区133包括数据库块134A。数据库块134A包括行136A、行136B、行136C和行136D。就图1F来说,编号相同的元件对应于图1A的相同元件。
[0127] 在图1F中,按照如上所述的相似方式,不过对于策略143C和143D,进行处理200。例如,如果丰满度阈值被校准为60%,那么访问统计信息160指示在时间T2之后的时间T3,策略143C的条件“ON FULLNESS THRESHOLD”被满足,因为表空间130A(CompanyTS)70%已满。由于对于Orders表定义策略143C,因此按不活动性对Orders表的表分区排序,最不活跃的分区被移动到目标,或者说表空间130B(ArchiveTS)。由于只存在一个表分区,或者说表分区133,因此生成把表分区133移动到表空间130B的任务。
[0128] 然而,在评估ILM策略表142中的所有策略的过程中,后台策略评估器116还可确定在上述任务完成之后,策略143D将立即被满足,因为移动表分区导致在表空间130B(ArchiveTS)中创建新的表分区,并且表分区133已闲置60天以上,如访问统计信息162所示。从而,对于相同的数据库对象使其条件被满足的任务可被合并成单一任务,或者说如图所示的ILM任务147,其中存档动作指定在单一操作中,表分区133(Orders_2012)被移动到ArchiveTS(“TIER TO ArchiveTS”),并被压缩到Archive High(“COMPRESS FOR ARCHIVE HIGH”)压缩级别。按照这种方式,避免当按第一个移动操作和第二个原地再压缩操作分别进行操作时,通常会出现的冗余的再压缩工作。
[0129] 如图1F中所示,执行存档动作,以把表分区133从表空间130A移动到表空间130B,其中表分区133按“Archive High”压缩级别被压缩。另外,由于在GROUP范围,规定策略143C,因此表分区133的任何从属对象(比如索引和LOB)也从表空间130A被移动到表空间
130B。
[0130] 第二ILM使用情况-自定义函数
[0131] 为了提供利用上述语法的记录的ILM策略的另一个例子,图1G是按照实施例,描述数据库管理系统中的数据移动和信息生命周期管理的例证自定义策略的方框图。图1G的示图106包括数据词典140和自定义函数113。数据词典140包括ILM策略表142。ILM策略表142包括策略143A和策略143B。就图1G来说,编号相同的元件对应于图1A的相同元件。
[0132] 表分区压缩策略
[0133] 图1G的ILM策略表142包含示范数据库120的具有自定义函数的例证ILM使用情况的几个策略。新的未压缩数据最初属于高关联性生命周期阶段。当利用自定义函数“isOrderPartitionInactive”确定Orders表的表分区不活动时,那么表分区被压缩到更高的QUERY HIGH压缩级别,如在策略143中反映的那样,以反映中等关联性生命周期阶段。例如,Orders表可按年的次序被分区,Orders_2012表示2012年的所有定单。由于策略143A是关于Orders表规定的,因此Orders表的所有表分区也继承策略143A。从而,如果按照“isOrderPartitionInactive”,Orders表的任意表分区为TRUE,那么该表分区可被压缩到QUERY HIGH级别。可按照上面在“CUSTOM FUNCTION REGISTRATION”下概述的步骤,可能已在先定义“isOrderPartitionInactive”函数,并登记到数据库120中。
[0134] 参见自定义函数113,对于“isOrderPartitionInactive”自定义函数,示出了例证的伪代码。在这个例子中,公司客户可租用对数据库120的访问,按照分配的表空间130A的大小被计费。在这种情况下,公司客户可能想要依据他们自己的业务规则和逻辑,规定在表空间130A内,或者更具体地,在Orders表分区上如何进取地压缩数据。
[0135] 由于公司客户的财务状态随着时间而变化,因此首先查询业务逻辑服务器172,以取回最新的存储预算。如果存储预算较宽松,那么可取的是以不压缩状态保存数据,以便获得更高的性能。不过,如果存储预算较紧张,那么可取的是压缩数据,以使存储空间降至最小。考虑到此,可针对不活动性分析表分区的访问统计信息,考虑到存储预算进行加权,并判定是应进行压缩(返回TRUE),还是不应进行压缩(返回FALSE)。如前所述,访问统计信息可以基于可通过ILM包114或者另一个接口访问的数据库120的块级、段级或者更高级别的热图。
[0136] 存储分层策略
[0137] 如果Orders表的表分区长时间地不活动,那么表分区可被卸载到ArchiveTS表空间中的低成本存储区,如在策略143B中反映的那样,以反映关联性低的生命周期阶段。从而,一旦“isArchiveCandidate”自定义函数对于Orders表的特定表分区返回TRUE值,那么该表分区被移动到ArchiveTS表空间。否则,该表分区保留在CompanyTS表空间中。
[0138] 参见自定义函数113,对于“isArchiveCandidate”自定义函数,示出了例证的伪代码。首先,查询业务逻辑服务器172,以了解未来的项目是否需要该表分区。例如,公司可确定未来进行促销,这种情况下,需要分析前些年的定单数据,以便识别目标客户。在这种情况下,在业务逻辑服务器172的自定义逻辑可规定特定期限(比如5年内)的数据应被保存在活动表空间中,而不被存档。从而,如果该表分区用于这5年内的定单,那么立即返回FALSE,从而函数结束。如果业务逻辑服务器172未立即终止该函数,那么和上面关于“isOrderPartitionInactive”函数所述的处理类似,处理可着手为表分区分析访问统计信息。指示大量的修改活动的访问统计信息倾向于FALSE结果,而指示长时间不活动的访问统计信息倾向于TRUE结果。
[0139] 策略评估
[0140] 在可作为方框202的一部分发生的建立包括自定义函数的一组例证的记录自定义ILM策略之后,通过对应于在方框202接收的特定策略利用图1G的策略143A,可继续处理200。从而,在处理200的方框204,参见图1A,数据库服务器实例110评估策略143A,以判定对于数据库对象,或者说表132(Orders),条件是否被满足。策略-对象关联表144可被用于识别表132的继承策略143A的子对象,比如表分区133(Orders_2012)。
[0141] 后台策略评估器116开始关于表分区133(Orders_2012)的策略143A的评估。如前所述,可按默认的周期时间间隔或者说15分钟,或者按自定义时间表,进行评估。为了评估策略143A,调用图1G的自定义函数113内的自定义函数“isOrderPartitionInactive”,同时作为输入自变量,传递表分区133的对象编号。可如上所述进行自定义函数的评估,并返回TRUE结果。
[0142] 任务排队和执行
[0143] 在处理200的方框206,参见图1A,响应自定义函数的评估返回TRUE结果,数据库服务器实例110对表分区133进行存档动作。由于方框204发现表分区133满足图1G中的策略143A的条件,因此可使任务在ILM任务表146中排队,指示将对表分区133执行策略143A,或者说“CompressOrdersTable”策略。方框206可按照如上关于图1C-1F所述的相似方式,继续进行图1G。
[0144] 在数据库服务器实例110执行在ILM任务中规定的压缩动作之后,表分区133可被压缩到QUERY HIGH压缩级别。如果需要的话,索引也可被重建。在压缩之后,可能所有4行136A-136D都放入一个压缩数据库块134A中,在这种情况下,数据库块134B可被释放,供其它数据之用。ILM任务的状态可被更新为“Completed”,然后可从ILM活动任务118中除去该ILM任务。
[0145] 第三ILM使用情况-慢速存取
[0146] 为了提供利用上述语法的记录ILM策略的另一个例子,图1H是按照实施例,描述数据库管理系统中的利用慢速存取模式的自动化信息生命周期管理的例证策略的方框图。图1H的示图107包括数据词典140。数据词典140包括ILM策略表142。ILM策略表142包括策略
143A。就图1H来说,编号相同的元件对应于图1A的相同元件。尽管为了简洁起见,表示了一个策略143A,不过,ILM策略表142可包括多个策略。
[0147] 表分区压缩策略
[0148] 图1H的ILM策略表142包含示范数据库120的具有慢速存取条件的例证ILM使用情况的策略143A。如在策略143A中所示,关联的数据库对象是Orders表,或者说表132。归因于策略继承,表132的表分区,包括表分区133也与策略-对象关联表144中的策略143A关联。例如,可按年的次序对Orders表分区,Orders_2012表示2012年的所有定单。
[0149] 表分区133中的新数据最初属于关联性高的生命周期阶段,从而可被压缩到高性能OLTP压缩级别,如在图1A中所示。当如依据条件“AFTER3MONTHS OF LOW ACCESS”确定的那样,Orders表的表分区进入低活跃状态时,那么表分区被压缩到更高的ARCHIVE HIGH压缩级别,如在策略143A中反映的那样,以反映低关联性的生命周期阶段。下面更详细地说明低活跃状态或“LOW ACCESS”模式的确定。
[0150] 策略评估
[0151] 在建立例证的记录ILM策略的情况下,通过对应于在方框202作为策略数据解析的特定策略,利用策略143A,可继续处理200。从而,在处理200的方框204,参见图1A,数据库服务器实例110按照一个或多个准则,对于利用策略语句指定的数据库对象中的至少一个数据库对象,判定策略143A中的活跃度条件是否被满足。由于策略143A指定作为父对象的表132(Orders),因此策略-对象关联表144可被用于识别表132的继承策略143A的子对象,比如表分区133(Orders_2012)。随后可对照策略143A,评估各个识别的数据库对象,以判定所述一个或多个准则是否满足活跃度条件。
[0152] 参见图1I,图1I是按照实施例,描述利用慢速存取模式的自动化信息生命周期管理的策略的例证评估的方框图。图1I的示图108包括后台策略评估器116、ILM任务表146和表分区133。后台策略评估器116包括访问统计信息160。ILM任务表146包括ILM任务147。表分区133包括数据库块134A。数据库块134A包括行136A、行136B、行136C和行136D。就图1I来说,编号相同的元件对应于图1A的相同元件。
[0153] 在时间T1,后台策略评估器116开始相对于表分区133(Orders_2012)的策略143A的评估。如前所述,可按默认的周期时间间隔或者说15分钟,或者按自定义时间表,进行评估。从而,T1指示触发周期时间间隔或自定义时间表的时间。
[0154] 在时间T1,后台策略评估器116可计算访问统计信息160。可从由数据库管理系统100随着时间的过去记录的保存的统计信息得到访问统计信息160,其中保存的统计信息作为元数据被保存在数据库120中。通过利用数据库120的段级或块级热图,可以得到访问统计信息160的某一部分。数据库120的段级或块级热图可指示数据库120内的数据库块的活动,比如最后访问时间,最后修改时间和创建时间。
[0155] 如在访问统计信息160中所示,就表分区133(Orders_2012)来说,存在对于特定行的10次行访问或者单独访问,整个表分区的2000次表扫描,修改该表分区的0个DML语句,和0次索引查询。由于策略143A规定3个月的最小时限,因此对于时间T1之前的最后3个月的报告期,生成统计访问信息160。从而,即使15分钟周期地调用后台策略评估器116,策略143A的评估也会被推迟,直到收集至少3个月的访问统计信息为止。如果策略143A未规定最小时限,那么数据库服务器实例110可利用默认时限,或者自动生成最小时限,所述最小时限可基于策略143A的参数。例如,可以分析相关的数据库对象的过去的活跃度,从而可校准最小时限,以提供能够实现精确的成本分析估计以便移动到更高的ARCHIVE HIGH压缩级别的足量统计信息。
[0156] LOW ACCESS指标
[0157] 为了判定图1H中的策略143A的活跃度条件是否被满足,所述一个或多个准则可包括低于“LOW ACCESS”的阈值的访问指标。所述访问指标可以基于访问统计信息160。此外,所述访问指标可以基于把数据库对象的当前压缩级别变更成在策略143A中规定的目标压缩级别的一个或多个成本。假定如图1A中所示,已按“OLTP”级别压缩所述对象、表分区133,那么策略143A的动作实际上把表分区133的压缩级别从当前的“OLTP”级别变更成目标“ARCHIVE HIGH”级别。
[0158] 例如,在访问指标中,访问统计信息160中的每种访问可被赋予特定权重值,以反映在当前OLTP存储层中进行该特定访问的成本。不过,按照在目标ARCHIVE HIGH存储层中进行相同类型的访问的成本,调整这些权重。如果访问指标仍然低于数据库服务器实例110确定的阈值,那么“LOW ACCESS”活跃度条件被满足。
[0159] 例如,从行访问开始,由于当利用OLTP压缩时,单一行访问可相当快,因为单个压缩单元能够被独立访问,因此10次行访问最初可被较低地加权。不过,由于一旦利用ARCHIVE HIGH压缩,单一行访问会变得成本非常高,因此加权可被相应增大。
[0160] 转到表扫描,利用OLTP压缩时的表扫描可比OLTP中的单一行访问被更大地加权,因为必须读取整个表。另一方面,由于利用ARCHIVE HIGH压缩时的表扫描实际上甚至比未压缩数据更快,因为高度压缩的数据可能需要较少的I/O活动,因此表扫描的加权可被向下调整,以反映通过压缩到ARCHIVE HIGH的可能性能增益。从而,最终结果可能是与其它动作(比如单一行访问和DML语句)相比,表扫描被较小地加权。
[0161] 接下来,就修改或创建新数据的DML语句来说,对于OLTP压缩可以设置较低的加权,因为利用独立的压缩块,能够较容易地增加或修改行。另一方面,对于大块的数据(可能是整个表分区),和应用于ARCHIVE HIGH压缩的DML语句相同的DML语句需要成本高的再压缩操作,因为单一行可能难以利用这种高度压缩的格式个别修改。从而,DML语句可被调整到高得多的权重。
[0162] 从而,可以分析访问统计信息160,以创建还集成在存档动作前后存储层内的数据库对象的访问成本,或者当前压缩级别和在策略中规定的目标压缩级别的访问成本的访问指标。尽管策略143A的例子具体涉及压缩,不过,通过另外把将数据库对象保存在各个表空间中的拥有成本视为计算访问指标时的一个准则,可把类似的成本分析应用于一个表空间到另一个表空间之间的移动。从而,对于活跃度条件,可以考虑各种标准。
[0163] 数据库服务器实例110可按照存储层的知识,试探法,过去数据分析,估计量和其它数据,确定达到低活动状态或“LOW ACCESS”的阈值。如果加权的访问指标低于所述阈值,那么对于策略143A,条件子句可被满足,从而任务调度器115可使动作子句立即执行或排队等待执行。否则,条件子句不被满足,从而不执行动作子句。
[0164] 对本例来说,数据库服务器实例110可判定条件被满足。即使访问统计信息160指示大量的高成本表扫描,由于与当前的OLTP压缩级别相比,在ARCHIVE HIGH压缩级别下,可以性能更高地进行这些表扫描,因此利用上面的访问指标的成本分析可指示从性能增益产生的减小的访问成本证明与不执行该策略动作的现状相比,执行该策略动作是正确的。如果访问统计信息160主要是单一行访问和DML语句(这种情况下,与OLTP相比,ARCHIVE HIGH压缩级别不太适当),那么会出现不同的结果。
[0165] 注意,由于低活动状态的阈值由数据库服务器实例110确定,而不是在策略143A中明确规定,因此数据库用户不需要考虑和操心设定复杂的参数和设置,因为数据库利用上面说明的处理,自动进行“LOW ACCESS”判定。
[0166] 索引维护
[0167] 访问统计信息160中的索引查找和表扫描的数目也可被用于进行自动索引维护,比如创建、禁止和删除索引。例如,如果发生大量的表扫描,那么可自动创建索引。如果索引存在,但是很少被使用,那么该索引可被禁止或者甚至被删除。该特征也可被用于部分索引。
[0168] 任务排队和执行
[0169] 在处理200的方框206,参见图1A和图1I,响应在方框204,判定活跃度条件被满足,数据库服务器实例110进行存档动作。由于方框204判定对于至少一个数据库对象,图1H中的策略143A的“LOW ACCESS”活跃度条件被满足,因此如图所示,填充ILM任务147,指示将对Orders_2012表分区,或者说表分区133,执行策略143A,或者说“CompressOrdersTable”策略。方框206可按照和如上关于图1C-1F所述的相似方式,继续进行图1G-1H。
[0170] 在数据库服务器实例110执行在ILM任务147中指定的存档动作之后,出现如图1D中所示的表分区133的结构,其中表分区133被重新压缩到“ARCHIVE HIGH”压缩级别。由于“ARCHIVE HIGH”级别可提供比“OLTP”级别更高的压缩比,因此行136A-136D都可被包含在单个数据库块134A中,从而释放先前被数据库块134B占据的空间。ILM任务147的状态可被更新为“Completed”,然后ILM任务147可从ILM活动任务118中被除去。
[0171] 硬件概述
[0172] 按照一个实施例,这里说明的技术是利用一个或多个专用计算设备实现的。所述专用计算设备可被硬连接,以实现所述技术,或者可包括数字电子设备,比如一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA),所述数字电子设备被永久编程,以实现所述技术,或者可包括一个或多个通用硬件处理器,所述通用硬件处理器被编程,以按照固件、存储器、其它存储器或它们的组合中的程序指令,实现所述技术。这种专用计算设备还可结合定制的硬连线逻辑、ASIC或FPGA与定制的编程,以实现所述技术。专用计算设备可以是桌上型计算机系统、便携式计算机系统、手持设备、连网设备、或者包含硬连线和/或程序逻辑,以实现所述技术的任何其它设备。
[0173] 例如,图3是图解说明可在其上实现本发明的实施例的计算机系统300的方框图。计算机系统300包括总线302或者用于传送信息的其它通信机构,和与总线302耦接,用于处理信息的硬件处理器304。例如,硬件处理器304可以是通用微处理器
[0174] 计算机系统300还包括耦接到总线302,用于保存信息和由处理器304执行的指令的主存储器306,比如随机存取存储器(RAM)或其它动态存储设备。主存储器306也可用于在由处理器304执行的指令的执行期间,保存临时变量或其它中间信息。当被保存在处理器304可访问的存储介质中时,这种指令使计算机系统300变成为进行在指令中指定的操作而定制的专用机器。
[0175] 计算机系统300还包括耦接到总线302,为处理器304保存静态信息和指令的只读存储器(ROM)308或其它静态存储设备。设置诸如磁盘或光盘之类的存储设备310,并耦接到总线302,以保存信息和指令。
[0176] 计算机系统300可通过总线302,耦接到显示器312,比如阴极射线管(CRT),以向计算机用户显示信息。包括字母数字键和其它键的输入设备314耦接到总线302,以把信息和命令选择传送给处理器304。另一种用户输入设备是光标控制器316,比如鼠标跟踪球或光标方向键,以向处理器304传送方向信息和命令选择,和控制显示器312上的光标移动。这种输入设备一般具有使该设备可以指定平面中的位置的沿2个轴,即第一轴(例如x)和第二轴(例如y)的2自由度
[0177] 计算机系统300可利用与计算机系统结合,使计算机系统300成为或者把计算机系统300编程为专用机器的定制硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑,实现这里说明的技术。按照一个实施例,响应处理器304执行包含在主存储器306中的一个或多个指令的一个或多个序列,计算机系统300执行这里的技术。这种指令可从另一个存储介质,比如存储设备310被读入主存储器306。包含在主存储器306中的指令序列的执行导致处理器304进行这里说明的处理步骤。在备选实施例中,代替或者与软件指令结合,可以使用硬连线电路。
[0178] 这里使用的术语“存储介质”指的是保存使机器按特定方式工作的数据和/或指令的任何介质。这种存储介质可包含非易失性介质和/或易失性介质。例如,非易失性介质包括光盘或磁盘,比如存储设备310。易失性介质包括动态存储器,比如主存储器306。例如,存储介质的常见形式包括软盘、硬盘、固态驱动器、磁带、或者任何其它磁数据存储介质、CD-ROM、任何其它光数据存储介质、具有各种图案的小孔的任何物理介质、RAM、PROM、EPROM、FLASH-EPROM、NVRAM、任何其它存储芯片或盒式磁带。
[0179] 存储介质不同于传输介质,但是可以和传输介质一起使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴电缆线和光线,包括构成总线302的导线。传输介质还可采取声波或光波,比如在无线电波和红外数据通信期间生成的声波或光波的形式。
[0180] 各种形式的介质可与把一个或多个指令的一个或多个序列传送给处理器304执行有关。例如,指令最初可被携带在远程计算机的磁盘或固态驱动器上。远程计算机可把指令载入其动态存储器中,随后利用调制解调器,通过电话线路发送所述指令。计算机系统300本地的调制解调器可在电话线路上接收所述数据,并利用红外发射器把数据转换成红外信号。红外探测器可接收携带在红外信号中的数据,适当的电路可把所述数据放在总线302上。总线302把所述数据运送到主存储器306,处理器304从主存储器306取回并执行指令。主存储器306接收的指令可视情况在由处理器304执行之前或之后,被保存在存储设备310上。
[0181] 计算机系统300还包括耦接到总线302的通信接口318。通信接口318提供耦接到网络链路320的双向数据通信,网络链路320连接到局域网322。例如,通信接口318可以是综合业务数字网(ISDN)卡、线缆调制解调器、卫星调制解调器、或者调制解调器,以提供到对应类型的电话线路的数据通信连接。再例如,通信接口318可以是提供到兼容LAN的数据通信连接的局域网(LAN)卡。也可实现无线链路。在任意这样的实现中,通信接口318发送和接收携带表示各种信息的数字数据流的电信号、电磁信号或光信号
[0182] 网络链路320一般提供通过一个或多个网络,到其它数据设备的数据通信。例如,网络链路320可提供通过局域网322,到主计算机324或者到由因特网服务提供商(ISP)326操作的数据设备的连接。ISP 326又通过现在通常称为“因特网”328的全球分组数据通信网络,提供数据通信服务。局域网322和因特网328都利用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号,和在网络链路920上,并通过通信接口318的往来于计算机系统300传送数字数据的信号是传输介质的例证形式。
[0183] 计算机系统300可通过网络、网络链路320和通信接口318,发送消息和接收数据,包括程序代码。在因特网例子中,服务器330可通过因特网328、ISP 326、局域网322和通信接口318,传送请求的应用程序的代码。
[0184] 接收的代码可在被接收时,由处理器304执行,和/或被保存在存储设备310或者其它非易失性存储器中,供以后执行。
[0185] 在上面的说明书中,参考可因实现而异的众多具体细节,说明了本发明的实施例。本发明的范围由本申请提出的一组权利要求(包括任何后续更正)限定。这里对于包含在所述权利要求中的术语明确记载的任何定义应决定在权利要求中使用的这种术语的含意。从而,未明确记载在权利要求中的限制、要素、性质、特征、优点或属性无论如何不应限制所述权利要求的范围。从而,说明书和附图应被视为是例证性的,而不是限制性的。
[0186] 第一附加公开
[0187] 在实施例中,一种方法包括:数据库管理系统接收策略,以与数据库中的数据库对象关联,所述策略规定触发对于保存的数据库对象的表示的存档动作的条件;数据库管理系统判定对于所述数据库对象,所述条件被满足;数据库管理系统进行对于保存的数据库对象的表示的所述存档动作,所述进行响应于所述判定;其中所述方法由一个或多个计算设备执行。
[0188] 在实施例中,所述条件包括数据库对象的最小读静止时段的过去。
[0189] 在实施例中,所述条件包括数据库对象的最小写静止时段的过去。
[0190] 在实施例中,所述条件包括在数据库对象的创建时间之后的一段时间的过去。
[0191] 在实施例中,利用数据库的段级或块级热图,判定对于数据库对象来说,所述条件被满足。
[0192] 在实施例中,对数据库对象的各行,指定所述条件,对数据库对象的满足所述条件的各行,进行存档动作。
[0193] 在实施例中,从数据库语言的声明式语句,接收所述策略。
[0194] 在实施例中,所述策略的接收从关于数据库对象的父对象的父策略继承所述策略。
[0195] 在实施例中,所述方法还包括使所述策略与数据库中的数据库对象的新创建的子对象关联。
[0196] 在实施例中,在进行存档动作之前,使所述存档动作与对于保存的相同数据库对象的表示的另一个存档动作合并。
[0197] 在实施例中,按周期性时间表进行所述判定。
[0198] 在实施例中,所述进行利用数据库的资源感知任务调度器。
[0199] 在实施例中,存档动作包括把保存的数据库对象的表示移动到目标存储结构。
[0200] 在实施例中,存档动作包括把保存的数据库对象的表示压缩到目标压缩级别。
[0201] 在实施例中,保存的数据库对象的表示在表空间中,所述条件包括表空间超过丰满度阈值,存档动作包括把表空间的最不活跃部分移动到目标表空间,以致所述表空间低于丰满度阈值。
[0202] 在实施例中,保存的数据库对象的表示是段。
[0203] 第二附加公开
[0204] 在实施例中,一种方法包括:数据库管理系统接收策略,以与数据库中的数据库对象关联,所述策略规定由数据库的用户定义的自定义函数,用于触发对于保存的数据库对象的表示的存档动作,其中数据库管理系统响应收到来自请求登记自定义函数的用户的用户输入,把自定义函数登记在数据库中;数据库管理系统把自定义函数评估为特定结果;响应把自定义函数评估为特定结果,数据库管理系统进行对于保存的数据库对象的表示的存档动作;其中所述方法由一个或多个计算设备执行。
[0205] 在实施例中,自定义函数是过程函数。
[0206] 在实施例中,自定义函数利用在数据库外的信息资源。
[0207] 在实施例中,自定义函数的一部分实现代码在数据库之外。
[0208] 在实施例中,策略的接收确认在关联策略和数据库中的数据库对象之前,用户具有数据库对象的所有权,并根据用户的权限来限制存档动作的进行。
[0209] 在实施例中,自定义函数利用与数据库对象相关的访问统计信息。
[0210] 在实施例中,与数据库对象相关的访问统计信息包括下述至少之一:最小写静止时段的过去,最小读静止时段的过去,和自创建时间以来的一段时间的过去。
[0211] 在实施例中,与数据库对象相关的访问统计信息包括数据库的段级或块级热图。
[0212] 在实施例中,在利用访问统计信息之前,自定义函数利用应用编程接口(API)取回与数据库对象相关的访问统计信息。
[0213] 在实施例中,从数据库语言的声明式语句,接收所述策略。
[0214] 在实施例中,按周期性时间表进行所述评估。
[0215] 在实施例中,按策略特有的定制时间表进行评估。
[0216] 在实施例中,进行存档动作利用数据库的资源感知任务调度器。
[0217] 在实施例中,存档动作包括把保存的数据库对象的表示移动到目标存储结构。
[0218] 在实施例中,存档动作包括把保存的数据库对象的表示压缩到目标压缩级别。
[0219] 在实施例中,通过从关于数据库对象的父对象的父策略继承所述策略,来接收所述策略。
[0220] 第三附加公开
[0221] 在实施例中,一种方法包括:数据库管理系统保存策略数据,以与一个或多个数据库对象关联,所述策略数据规定活跃度条件和存档动作;数据库管理系统依据一个或多个准则,判定对于所述一个或多个数据库对象中的至少一个数据库对象,活跃度条件被满足;响应活跃度条件被满足,数据库管理系统进行存档动作;其中所述方法由一个或多个计算设备进行。
[0222] 在实施例中,所述一个或多个准则包括把所述一个或多个数据库对象的当前压缩级别改变成由存档动作指定的目标压缩级别的一个或多个成本。
[0223] 在实施例中,活跃度条件基于最短时段。
[0224] 在实施例中,活跃度条件基于慢速存取模式。
[0225] 在实施例中,所述一个或多个准则包括关于所述一个或多个数据库对象的行访问的次数。
[0226] 在实施例中,所述一个或多个准则包括关于所述一个或多个数据库对象的数据操纵语言(DML)语句的数目。
[0227] 在实施例中,所述一个或多个准则包括关于所述一个或多个数据库对象的表扫描的次数。
[0228] 在实施例中,所述一个或多个准则包括关于所述一个或多个数据库对象的索引查找的次数。
[0229] 在实施例中,所述判定利用数据库管理系统的段级或块级热图。
[0230] 在实施例中,从数据库语言的声明式语句,解析策略数据。
[0231] 在实施例中,所述一个或多个数据库对象来源于在策略语句中规定的父对象的子继承。
[0232] 在实施例中,所述方法还包括使策略语句与父对象的新创建子对象关联。
[0233] 在实施例中,按周期时间表进行所述判定。
[0234] 在实施例中,通过利用数据库管理系统的资源感知任务调度器,进行所述存档动作。
[0235] 在实施例中,存档动作包括把保存的一个或多个数据库对象的表示移动到目标存储结构。
[0236] 在实施例中,存档动作包括把保存的一个或多个数据库对象的表示压缩到目标压缩级别。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈