用于在数据库管理系统中的查询管理的系统和方法

文档序号:6650861阅读:727来源:国知局

专利名称::用于在数据库管理系统中的查询管理的系统和方法
技术领域
:本发明涉及数据库管理系统。更具体地,本发明涉及查询管理策略在数据库管理服务器内的实现。
背景技术
:作为背景情况,数据库管理系统需要这样的控制,即可被实施以使这种系统的数据库管理服务器适合于改变的工作负荷,查询类型,用户活动等。例如,在实时数据仓库环境下,过多的用户、过多的存储器利用以及由于参照大量数据而导致的差的高速缓存效果,较容易使数据库管理服务器过载。当前数据库管理服务器使用固定的策略管理方法,其中使用静态环境和控制参数设置以间接影响关键执行路径和数据库管理服务器作为数据库资源、工作负荷和用户改变的语义。这种数据库管理服务器没有提供可动态地适应于在运行时间期间可能出现的情况的复杂组合的足够的控制机制。在上述示例内,随着用户数量增大或达到某一阈值,数据库管理员会希望改变并发控制优化以支持高的并发性。类似地,如果认识到特定用户或特定查询非常重要,则数据库管理员可能会希望指定一组可为该特定用户或特定查询优化运行时间的运行时间参数设置。但是,在开发原始应用时,通常不能提前知道特定用户或特定查询。希望提供一种可在数据库管理系统内更灵活地执行策略管理的技术。尤其需要这样一种解决方案,其中策略管理是基于在事务处理期间相对于关键路径和判定点可被动态定义、处理和应用的环境和控制参数的。
发明内容使用用于通过灵活的控制点策略管理数据库查询执行的新系统、方法和计算机程序产品,可解决上述问题并获得本
技术领域
内的改进,该控制点策略可被(1)定义,(2)应用于数据库操作的范围,以及(3)在运行时间被评价以确定是否采取策略行为。在本发明的示例性实施例内,控制点策略的“定义”包括对(1)应用该控制点策略的操作控制点,(2)确定是否执行该控制点策略的控制点策略过滤器,和(3)将依照该控制点策略执行的控制点策略行为的说明。在本发明的示例性实施例内,控制点策略的“应用”包括对(1)数据库管理系统操作的作用域,(2)代表该控制点策略相对于其他控制点策略的优先级的等级,和(3)用于控制点策略执行的操作环境的说明。在本发明的示例性实施例内,控制点策略的“评价”包括在达到相关联的控制点时评价被应用的控制点策略的过滤器说明,以确定是否应采取该策略行为。本发明的其他实施例可包括用于保留被应用的控制点策略评价的历史的控制点跟踪,以及用于维持控制点策略的控制数据库。从下面结合附图对本发明的优选实施例的更详细的说明中,将清楚地了解本发明的前述和其他特征及优点,在这些附图中图1是示出示例性数据库管理系统的功能框图,本发明可在该数据库管理系统内执行;图2是示出用于评价应用的控制点策略的示例性处理步骤的流程图。具体实施例方式下面将作为由附图所示的示例性实施例说明本发明,在附图中类似的标号指示所有附图中的相似元件。参照图1,示出可用于根据本发明的一种可能实现执行本发明的数据库管理系统2。数据库管理系统2配置以管理数据库6的数据库管理服务器4,该数据库6的数据驻存在一个或多个数据存储子系统8上。一个或多个客户机10通过合适的通信接口例如LAN(局域网)或WAN(广域网)12向数据库管理服务器4传送数据库查询请求。数据库管理服务器4通过调用合适的数据库查询功能来服务于该客户查询请求,并将查询结果返回请求客户机。尽管图2中仅示出一个数据库管理服务器4,但是应理解,可选择地可使用多个数据库管理服务器以提供并行服务器环境。除了在下面的说明中另外提到的之外,数据库管理系统2的前述元件本质上是传统的,并且可使用数据库管理领域公知类型的现有硬件和软件资源来实现。数据库管理服务器4通常(但不总是)被编程成容纳多个客户机10,该客户机可同时连接到该数据库管理服务器4以便发出可能不同类型的数据库查询请求。这些请求可包括常规的联机事务处理(OLTP)请求,其中需要秒以下的响应时间来处理较少的数据库记录。客户机10还自组织地发出处理器密集的决策支持系统(DSS)请求,该请求需要数小时来完成。为了支持上述类型的查询,数据库管理服务器4内的编程将实现通常的一组数据库管理服务器功能14。这些功能包括但并不必局限于各种事务管理、调度和数据管理功能例如查询优化、扫描处理、连接处理、聚集处理、分类处理、收敛处理、最终结果组处理、登记、恢复、索引管理、并发控制、缓冲池管理和并行查询处理。I.对基于控制点策略的查询管理的介绍根据本发明,数据库管理服务器4还使用查询管理组件16,该组件允许在数据库管理服务器功能14的执行期间定义、处理并应用控制和管理参数。查询管理组件16不是使用现有技术的静态控制技术试图间接影响关键执行路径和服务器的语义,而是允许关键执行路径和判定点针对直接和动态控制开放。此控制能力的载体就是控制点策略。查询管理组件16执行的控制点策略可定义为用预先指定的行为响应于预定的操作条件(或条件的组合)。一旦被定义,控制点策略还可被修改、补充或删除,从而可将复杂性提高的控制策略应用于数据库管理服务器4而不需要服务器升级。查询管理组件16执行的控制点策略的主要任务是管理服务器4上的查询工作负荷。控制点策略还提供了(1)指定应被监控的全局条件和资源的能力,(2)与客户机10相关联的数据库用户定义数据库管理服务器4内的关心的事件的能力,和(3)定义用户和系统执行的重叠环境的语义的能力。下面,简单地说明由根据本发明的查询管理组件16实现的特定的与控制点策略相关的功能·控制点策略定义查询管理组件16的功能之一是允许用户使用与客户机10(以及与数据库管理员系统(未示出))相关联的外部控制包18定义控制点策略。外部控制包18提供了允许客户机和管理员与查询管理组件16的控制点策略定义单元20交互的前端接口。控制点策略定义代表对查询管理组件16的条件和行为的说明。每个控制点策略定义包括对策略针对的操作点、可触发激活该策略的条件过滤器以及将断言的一组行为的说明。应指出,直到已应用控制点定义(见下文)之前,控制点策略应认为是无效的。·控制点策略应用查询管理组件16的另一功能是允许用户通过用具体例子说明控制点策略定义来应用控制点策略。此功能由图1中的标号22指示。从而,将控制点策略的定义与控制点策略的应用分开。一旦已应用控制点策略,就应认为该控制点策略是有效控制点策略。此方法使得可在数据库管理系统2的各种重叠控制范围内选择性地重新使用给定的控制点策略。控制点策略的应用允许明确控制该策略的范围、等级和环境。应用的控制点策略的上下文内的术语“范围”是指数据库管理系统操作的范围,例如指定的数据库或用户。另外的可应用控制点策略的操作范围包括已知为“应用”和“角色”的两个数据库管理控制实体。如数据库管理
技术领域
内已知的,应用是指一个或多个用户通过明确定义复杂工作负荷的不同分区来与数据库管理服务器通信并控制该服务器从而可更有效地控制和多路复用执行覆盖区(footprint)的能力。另外,应用可对应于可在客户机10(或中间应用服务器(未示出))上运行以便与数据库管理服务器4交互的特定软件实体。“角色”是用户定义的允许在组的基础上而不是单独地管理数据库控制参数例如访问许可的特权的集合。应用的控制点策略的上下文内的术语“等级”是指控制点策略相对于具有重叠范围的其他应用的控制点策略的优先级。等级指示器允许以正确的顺序评价和实施重叠控制点策略。应用的控制点策略的上下文内的术语“环境”是指在控制点策略有效时存在的运行时间环境。环境可由用户指定,在此情况下是“用户”环境,或可由数据库系统管理员指定,在此情况下为“系统”环境。查询管理组件16使得环境有关方面例如环境变量可封装在可应用、显示、改变等的指定对象内。·控制点评价查询管理组件16的另一功能是在达到策略的目标控制点时评价应用的控制点策略的过滤器定义,并且如果存在过滤器条件,则执行策略的行为定义。此功能由图1中的标号24指示。在任何给定的控制点目标处,可能需要评价包括可能重叠的条件和行为组的多个候选的控制点策略。控制点评价需要用于按正确顺序评价和应用该策略的一致的语义。·控制点策略跟踪可提供跟踪控制点策略评价的效果的能力以便调试和用文件证明查询管理组件16的行为。此功能由图1中的标号26指示。·控制数据库可创建明确的控制数据库以便由查询管理组件16使用来存储其定义和当前状态。此功能由图1中的标号28指示。II.控制点策略定义如上文简短说明的,控制点策略被定义为,在指定的控制点上操作,从而如果存在过滤器定义内指定的条件,就进行一个或多个控制点策略行为。下面给出一个可用于限定控制点策略的示例性语法,其包括可选择的示例性参数的列表。在示例性语法定义之后,更详细地说明每个示例性参数类型。应理解,可选择地,可根据设计偏好使用其他语法定义来实现本发明。在图1的数据库管理系统内,用户可调用客户机10内的控制包18来使用将说明的示例性语法来创建控制点策略定义。控制包18与查询管理组件16交互,这继而将使用与标号20相关联的功能创建控制点策略定义并将其存储在合适的存储位置(未示出)。在下文的示例性语法描述中,包含所有大写黑体字母的项是命令说明,包含字首大写字母并且之前为“--”的项是参数类型标识符,而括弧“{}”内的项是可用于本发明的实际实现内的单个示例性参数。另外,应理解,所列出的命令说明、参数类型和参数不是穷尽的,而是可根据设计偏好使用这些命令说明、参数类型和参数每一个的变型。使用标准编程语言记法标识说明性注释。A.创建控制点(语法)CREATECONTROL--Control_Point_NameON--ControlPointTarget{/*ControlPointisevaluatedwhen*//*ControlPointTargetsinaUserEnvironment*/DB_OPEN|/*adatabaseisopened*/TX_START|/*transactionstart*/TX_COMMIT|/*transactioncommit*/TX_ROLLBACK|/*transactionrollback*/STMT_OPT|/*beforeoptimizingnextstatement*/STMT_EXEC|/*beforeexecutingnextstatement*/CONNECT|/*whenauserconnectstoserver*//*ControlPointTargetsinaSystemEnvironment*/EVENT|/*whenanyeventoccurs*/CONDITION|/*whensysteminterventionoccurs*/ENQUEUE|/*enteringareadyorrunqueue*/DEQUEUE|/*leavingareadyorrunqueue*/}WHEN--ControlPointFilter{BooleanExpression}/*Iftheexpressionevaluatestotrue,thenthecontrolpointactionsareapplied.TheexpressionmaybewrittenusingSQL(StructuredQueryLanguage)notationandmaycontainsubqueriesandstoredprocedures.*/EXECUTE--ControlPointActions{Environmentvariableassignments,orControlstatements,orQueuemanipulations(submit,retract,...),orExitcontrols(e.g.,requestexitofquery),orStored_Procedure_Name,orSQLAuditstatements,orRAISEEVENTEvent_Name(e.g.invokeaneventsubsystem)}B.控制点目标根据上述示例性语法的控制点目标定义了控制点策略可在哪里连接到数据库管理服务器4内的执行路径。即,目标代表支持控制点策略评价的服务器操作的预定义点。控制点目标分组为用户环境目标和系统环境目标。上述语法示例中给出了用户和系统环境目标的示例。在上述语法示例内,系统环境目标分为事件、条件和与队列相关的活动。事件通常是与如此针对的控制点策略相关联的过滤器表达式内涉及的系统定义的执行点。事件也可由用户在控制点策略定义的EXECUTE(行为)子句内定义。用户定义的事件仅由于控制点策略行为而发生,此后,事件被在该事件处被针对的且其过滤器检查用户定义的事件类型的另一控制点策略截取。上述语法示例内的条件与用户定义的事件在这一点上类似它们仅由于控制点策略评价而发生。在用户定义的事件的情况下,评价在因为控制点策略行为的执行而被越过(cross)的定义的控制点的上下文内发生。相反,针对条件的控制点策略定义了应独立于用户的执行路径检测到的系统事件。条件代表需要在某一规则的基础上评价的数据库管理服务器的不变量。它们对于识别对系统干涉的需求存在的时间是尤其有用的。上述语法示例内的队列是允许根据用户需求分割数据库管理服务器的工作负荷并排序的实体。它们可用作控制点目标以便定义在与队列相关的活动发生例如队列查询进入或离开就绪队列或运行队列时实现的控制点策略。C.控制点过滤器根据上述示例性语法的控制点过滤器可以是确定激活控制点策略的条件的布尔表达式(或其他类型的评价)。它们通过提供检查例如围绕用户查询请求的查询专用上下文以及确定控制点行为是否发生的机制,允许控制点是上下文有关的。从而,过滤器是这样的控制触发器,其作用基于给定控制点的操作上下文。例如,控制点过滤器可评价执行查询的用户是否被给予特权(例如,公司首席执行官),并且如果这样的话,就分配所有可能的资源以促进该查询的执行,即使这意味着临时终止系统上的所有其它用户。在此上下文内,控制点过滤器可有效地控制应用于查询请求的优化和执行策略。控制点过滤器可使用语言例如SQL或任何其他合适的格式写成。如果支持SQL语句,可为对过滤器表达式内存储的程序的评价提供额外的支持。D.控制点行为根据上述示例性语法的控制点行为将改变用于给定查询请求的上下文和/或执行路径。如语法描述中所示的,可设置环境变量,可发出控制语句指令,可将请求选择性地排队或解除队列,可退出查询处理,可调用存储的程序,可发出SQL审计语句,可引发用户限定的事件,等等。应指出,控制点行为还可包括应用额外的控制点策略。E.控制点策略定义的示例下面给出一些说明可使用上述示例性语法定义控制点策略的方式的示例。在控制点事件发生,且提供的指定过滤条件(如果策略定义内存在)已发生时,每个策略实现一个或多个与通用数据库查询处理参数有关的行为。示例1此示例的控制点策略被定义为,在打开数据库时将用户查询的隔离等级设置为“重复读取”(应指出,在此示例内没有过滤条件)。该重复读取设置允许在处理事务期间用户读取数据超过一次,同时锁定其他用户不能修改数据。CREATECONTROLPOINTSetDefaultIsolationONDB_OPENEXECUTE设置隔离到重复读取;示例2此示例的控制点策略被定义为,当数据库打开且其是OLTP数据库时设置查询优化程序控制语句指令支持索引连接。此优化有助于包含较少行的大表格的OLTP查询。CREATECONTROLPOINTOLTP_FocusONDB_OPENWHENCurrent(dbname)=OLTP_DBEXECUTEASSIGNOPTIM_DIRECTIVEFavorIndexes;示例3此示例的控制点策略被定义为,当数据库打开且其是DSS数据库时,设置查询优化程序指令以支持DSS类型的工作负荷。这是通过设置控制语句指令以支持DSS处理并将隔离等级设置为“错读”,从而即使数据被另一用户锁定,该数据仍可被该用户读取而实现的。另外,如果此示例的控制点策略定义应用于包含多个能够并行处理查询的数据库管理服务器的数据库管理系统,则已知为PDQPRIORITY(其中“PDQ”代表并行数据库查询)的控制语句指令可设置为请求高度并行处理以有助于大DSS查询的执行。CREATECONTROLPOINTDSS_DBONDB_OPENWHENCurrent(dbname)=DSS_DBEXECUTEASSIGNOPTIM_DIRECTIVEFavorDSS;SETISOLATIONTODIRTYREAD;SETPDQPRIORITY20;示例4此示例的控制点策略被定义为,当查询语句将被执行并确定为大的资源消耗查询时,将此查询分配给将控制查询对数据库管理系统的访问的给定队列。此示例的控制点策略定义还包含用于登记该查询以便其可被跟踪的动作命令。<prelisting-type="program-listing">CREATECONTROLPOINTExpensiveQueryONSTMT_EXECWHENCurrent(QueryCost)>1,000,000ORCurrent(QueryNumrows)>200,000ORCurrent(QueryThreads)>40EXECUTESUBMITExpensiveQueryQueue;Insertintologtable(querytext,cost,estrows,user,time)VALUES(Current(QueryText),Current(QueryCosst),Current(QueryNumrows),Current(QueryThreads),USER,CURRENT);</pre>如前面的示例所述,使用上述示例性语法定义非常强大的控制点策略比较容易。这些控制点策略可被定义为通常应用于涉及多个过滤条件和多个独立行为的广泛情况,例如示例4,或者这些控制点策略可被定义为应用于比较窄的一组情况,例如示例1、2和3。另外,由于控制点策略的定义独立于其应用(如下),可以非常简单的方式适当地动态地添加或除去定义。III.控制点策略应用如上文简单说明的,控制点策略一直无效直到被应用。在被应用时,控制点策略相对于指定的数据库管理系统操作范围(作用域)、指定的优先权等级以及指定的环境变得有效。下面给出一个可用于应用控制点策略的示例性语法,其包括可选择的示例性参数的列表。在该语法定义之后,更详细地说明每种参数类型。在图1的数据库管理系统内,用户可调用客户机10内的控制包18来使用将说明的示例性语法来应用控制策略。控制包18与查询管理组件16交互,其继而将使用与标号22相关联的功能创建控制策略应用并将其存储在合适的存储位置(未示出)。在下文的示例性语法描述中,包含所有大写黑体字母的项是命令说明,包含字首大写字母并且之前为“--”的项是参数类型标识符,而括弧“{}”内的项是可用于本发明的实际实现内的示例性参数。应理解,所列出的示例性命令说明、参数类型和参数不是穷尽的,而是可根据设计偏好使用这些命令说明、参数类型和参数每一个的变型。使用标准编程语言记法标识说明性注释。A.应用控制点APPLY[DBA][EXCLUSIVE]CONTROL--Control_Point_NameAS-Applied_Control_Point_Name/*createsanamedobject*/TO-Scope/*defaultscopeisUSER*/{DATABASEDatabase_Name|/*scopeisadatabaseobject*/SYSTEM/*threetypesofsystemscopes*/USERUser_Name|APPLICATIONApplication_Name|ROLERole_Name}ATLEVEL-LevelNumber/*usedtoprioritizedifferentcontrolpointpolicyapplicationsofoverlappingscope*/WITH[PERSISTENT][NEW]ENVIRONMENT--Environment_NameB.作用域在上述语法示例内,作用域参数类型允许应用的控制点策略与数据库管理系统内的控制范围相关联。根据示例性语法,这些包括指定的数据库和三个“系统”作用域,即用户、应用和角色。为了向数据库管理系统操作提供安全措施,可分配默认的作用域,从而用户可仅将控制点策略应用于自身。还允许用户将作用域设置为指定的数据库。通常,仅允许具有提高特权的用户来将作用域参数设置为应用或角色。C.等级上述语法内的等级参数类型可用于使重叠控制点的效果更分明。较小的等级数优先于较大的等级数(或相反)。中点值默认等级可建立为基线。在许多情况下,希望将默认等级分配给用户。然后,仅允许特权提高的用户分配较高或较低的等级,以定义应在与默认等级下应用的控制点策略相关联的行为之前或之后分别执行的行为。在默认等级行为之前执行控制点策略行为可处理该行为需要立即起作用的情况。在默认等级行为之后执行控制点策略行为适合于环境变量设置和其中希望最后的行为具有优先权的其他分配。还允许特权提高的用户选择根据上述语法的APPLYCONTROL语句的第一行内的DBA或EXCLUSIVE关键字之一。DBA关键字用于应用具有数据库管理员特权的控制点策略。该EXCLUSIVE关键字用于排他地应用控制点策略,从而不会执行针对同一控制点的其他应用的控制点策略。D.环境与如果控制点策略行为依赖于在控制点策略定义时未知的环境则会发生的可能的不一致相反,在上述示例性语法内,环境确保控制点策略行为可相对于给定的定义的用户或系统环境保持一致。默认地,针对控制点策略的应用指定的环境仅持续该控制点策略的执行时间。当控制点策略行为完成时,重新建立初始环境。这种动态打开和关闭用于控制点目标的环境可确保处理特定控制点行为语句(或由控制点过滤器指定的其他上下文)所需的环境设置可被选择性地应用于该语句,并且不会拖延超过和影响随后的语句。根据上述语法,如果希望永久的环境改变,则可在应用的控制点策略定义的Action子句内应用新环境,或通过指定APPLYCONTROL语句的Environment子句内的PERSISTENT关键字应用新环境。示例性语法内的NEW关键字用于代表用于创建新环境的机制,然后将贯穿控制点策略行为的执行应用该新环境。这对于确保任何当前的环境不会影响执行是有用的。E.控制点策略应用的示例示例1在此示例内,在打开OLTP数据库时,将前文说明的OLTP_Focus控制点策略定义应用于指定的应用,以对依据该应用发出的查询提供OLTP优化。应指出,不存在等级或环境说明,这意味着在执行该控制点策略行为时,将使用默认等级,并且现有的环境将保持有效。为了简化参考,阐述控制点策略定义及其应用。1.控制点策略定义CREATECONTROLPOINTOLTP_FocusONDB_OPENWHENCurrent(dbname)=OLTP_DBEXECUTEASSIGNOPTIM_DIRECTIVEFavorIndexes;2.控制点策略应用APPLYCONTROLOLTP_FocusASIndexesForOLTPTOAPPLICATIONoltpapplication示例2在此示例内,假定控制点策略已定义为将给定数据库识别为DSS数据库,并已应用控制来支持星形模式优化、高PDQPRIORITY等。随后,在实际运行时间期间,系统管理员可能会注意数据库管理系统没有最优地执行。管理员可通过指引数据库管理服务器的查询优化程序选择可支持较高的并发等级和吞吐量的查询计划确定忽视现有的行为。下面将说明可用于实现预期效果的示例性的控制点策略定义和应用语句。1.控制点策略定义CREATECONTROLPOINTDSS_OVERRIDEONDB_OPENWHENCurrent(NumConcurrent)>100EXECUTEASSIGNOPTIM_DIRECTIVEFavorHighConcurrency;SETPDQPRIORITY1;2.控制点策略应用APPLYCONTROLDSS_OVERRIDEASLIGHTEN_DB1_MEMTODATABASEdb1ATLEVEL1;在此示例内,一旦与数据库db1的并发连接的数量超过100,则指引所有未来的连接支持索引,这将减小存储器需求。应指出,该控制点策略定义是较一般的。其是指定更详细的上下文——其是数据库名称——的控制点策略应用。高优先级编号的说明可确保此指令忽视还可在DB_OPEN应用于数据库db1的任何控制点。如上所述,如果系统管理员希望使此控制点策略是应用的唯一控制,则他/她将使用APPLYCOBTROL语句内的EXCLUSIVE关键字。示例3此示例说明了使用前文所述的DSS_DB控制点策略定义的具有非默认的特权等级的控制点策略的应用。APPLYCONTROL语句内没有指定作用域或环境。因此,可使用默认的用户作用域,并且环境将不会改变。应指出,调用APPLYCONTROL语句的用户需要被分配这样的特权等级,即允许设置APPLYCONTROL语句内指定的等级号。为了简化参考,阐述控制点策略定义及其应用。1.控制点策略定义CREATECONTROLPOINTDSS_DBONDB_OPENWHENCurrent(dbname)=DSS_DBEXECUTEASSIGNOPTIM_DIRECTIVEFavorDSS;SETISOLATIONTODIRTYREAD;SETPDQPRIORITY20;2.控制点策略应用APPLYDSS_DBASGIVEME_DSSATLEVEL5;IV.控制点评价控制点目标代表数据库管理服务器内的可附加控制点策略的任何预定位置(或时间)。在图1的数据库管理系统2内,只要服务器线程的执行路径越过这种目标,查询管理组件16执行控制点评价。下面将说明,查询管理组件16将采取的以确定将执行什么控制点策略应用以及以什么顺序执行的示例性步骤顺序。这些步骤将在图2的流程图内示出。图1的标号24指示的功能提供此处理逻辑。在图2的第一步骤30内,查询管理组件16经由监控数据库管理服务器功能14来确定是否已达到定义的控制点。在步骤32,查询管理组件16评价针对此控制点应用的所有控制点策略的过滤条件,以确定什么策略是执行的候选。在步骤34内,按照相关联的等级号将候选控制点策略排序。可从上文的讨论中想到,每个应用的控制点策略的等级号或者在APPLYCONTROL语句期间明确指定,或者默认地隐含地指定。在步骤36内,为已通过APPLYCONTROL语句内的EXCLUSIVE关键字被定义为排他的策略,搜索被排序的控制点策略候选。在步骤38内,如果存在任何排他的控制点策略,则在步骤40排他地执行具有最高等级的策略。否则,根据它们各自的等级执行每个候选的控制点策略。A.控制点评价的示例示例1此示例在控制点策略定义上使用前文部分的示例2和3的控制点策略定义。此示例在控制点策略应用上也使用前文部分的示例2和3的控制点策略应用。为了简化参考,重复这些控制点策略定义如下1.控制点策略定义a.第一定义CREATECONTROLPOINTDSS_DBONDB_OPENWHENCurrent(dbname)=DSS_DBEXECUTEASSIGNOPTIM_DIRECTIVEFavorDSS;SETISOLATIONTODIRTYREAD;SETPDQPRIORITY20;b.第二定义CREATECONTROLPOINTDSS_OVERRIDEONDB_OPENWHENCurrent(NumConcurrent)>100EXECUTEASSIGNOPTIM_DIRECTIVEFavorHighConcurrency;SETPDQPRIORITY1;2.控制点策略应用a.第一控制点策略应用APPLYDSS_DBASGIVEME_DSSATLEVEL5;b.第二控制点策略应用APPLYCONTROLDSS_OVERRIDEASLIGHTEN_DB1_MEMTODATABASEDSS_DBATLEVEL1;根据控制点策略定义内包含的控制点目标,查询管理组件16内的控制点策略评价逻辑24首先执行GIVEME_DSS以便用户打开DSS_DB数据库。如果并发查询的数量过大,则对所有已打开DSS_DB的用户执行OVERRIDE_DSS。执行行为的顺序如下ASSIGNOPTIM_DIRECTIVEFavorDSS;SETPDQPRIORITY20;SETISOLATIONTODIRTYREAD;ASSIGNOPTIM_DIRECTIVEFavorIndexes;SETPDQPRIORITY1;应指出,如果EXCLUSIVE关键字已应用于任何一个控制点策略应用,则应已仅执行一个行为集合,即由EXCLUSIVE关键字定义的行为集合。如果EXCLUSIVE关键字已应用于两个应用定义,则仅应用OVERRIDE_DSS控制点策略应用,因为其优先级号较高,并且将忽略GIVEME_DSS控制点策略应用。V.控制点策略跟踪希望可保持对控制点策略的定义、应用和评价的覆盖区的跟踪。为此,可使用图1的策略跟踪功能26。可通过客户机控制包18向查询策略管理组件16发出控制点跟踪请求语句,来调用策略跟踪。为此,可使用下文说明的示例性语法。在此示例内,NAME子句识别了一个或多个控制点策略,SCOPE子句识别了关心的特定范围,而EFFECT子句指定了仅跟踪已评价的控制点策略、已应用的控制点策略,还是跟踪所有控制点策略。TRACECONTROLPOINT--/*ALLisdefaultforTRACEclauses*/[NAME{Control_PointName,ALL}][SCOPE{SYSTEM,DATABASE,USER,ROLE,ALL}][EFFECT{EVALUATED,APPLIED,ALL}];响应于上述语句,策略跟踪功能26将创建指定控制点策略的日志。VI.控制数据库图1的控制点策略数据库28包含所有控制点策略定义和应用的组合视图。这些视图可被外部应用监控,并且可使用传统的数据库管理实用程序动态改变。数据库28内可使用多种表格,包括控制点策略定义和应用、环境定义和应用、队列定义和应用等的表格。VII.结论应理解,从本发明获得许多好处和优点。例如,用户可定义如何在单个数据库管理服务器内平衡包含多种查询、事务、用户的数量以及活动类型的工作负荷的相互矛盾的目标和需求。这里公开的控制点策略允许,可根据在由控制点和控制点过滤器识别的自然工作负荷上下文的点(例如数据库的开口)处应用的控制行为,以及这些属性的合适的作用域来指定特定目标的定义,从而可在单个用户或用户聚集组(例如应用和角色)的等级上应用该策略。通过使用等级和特权,可应用控制点策略的分层结构以使用户角色、数据库和每个用户设置的潜在的重叠作用域更分明。因此,已公开了用于数据库管理系统的查询管理技术。应理解,本发明的概念可不同地体现为数据处理系统、机器实现的方法以及计算机程序产品的任一个,在该计算机程序产品中编程装置可记录在一个或多个数据存储媒体上以便用于控制数据处理系统来执行所需功能。尽管已示出和说明本发明的一些实施例,很明显可实现许多变型和可选择实施例。因此,应理解,除了根据所附权利要求及其等效物的精神之外,本发明没有受到任何限制。权利要求1.一种用于通过灵活的策略管理数据库查询执行的系统,该策略可被定义并被应用以在指定的操作控制点操作,该系统包括用于定义控制点策略的策略定义装置;用于将控制点策略应用于数据库操作的范围的策略应用装置;以及用于评价应用的控制点策略的策略评价装置。2.根据权利要求1的系统,其特征在于,所述策略定义装置包括用于定义可应用控制点策略的控制点的装置。3.根据权利要求1的系统,其特征在于,所述策略定义装置包括用于定义确定是否将执行控制点策略的控制点策略过滤器的装置。4.根据权利要求1的系统,其特征在于,所述策略定义装置包括用于定义将依据控制点策略执行的控制点策略行为的装置。5.根据权利要求1的系统,其特征在于,所述策略应用装置包括用于应用代表所述数据库操作范围的作用域的装置。6.根据权利要求1的系统,其特征在于,所述策略应用装置包括用于应用代表控制点策略相对于其他控制点策略的优先级的等级的装置。7.根据权利要求1的系统,其特征在于,所述策略应用装置包括用于应用控制点策略执行的环境的装置。8.根据权利要求1的系统,其特征在于,所述策略评价装置包括响应于已达到控制点而评价被应用的控制点策略的过滤器以确定是否应采取该应用的控制点策略行为的装置。9.根据权利要求1的系统,其特征在于,该系统还包括用于保留被应用的控制点策略评价的历史的控制点跟踪装置。10.根据权利要求1的系统,其特征在于,该系统还包括用于维持控制点策略的数据库的控制数据库装置。11.一种用于通过灵活的策略管理数据库查询执行的方法,该策略可被定义并被应用以在指定的操作控制点操作,该方法包括定义控制点策略;将控制点策略应用于数据库操作的范围;以及评价应用的控制点策略。12.根据权利要求11的方法,其特征在于,所述定义包括定义可应用控制点策略的控制点。13.根据权利要求11的方法,其特征在于,所述定义包括定义确定是否将执行控制点策略的控制点策略过滤器。14.根据权利要求11的方法,其特征在于,所述定义包括定义将依据控制点策略执行的控制点策略行为。15.根据权利要求11的方法,其特征在于,所述应用包括应用代表所述数据库操作范围的作用域。16.根据权利要求11的方法,其特征在于,所述应用包括应用代表控制点策略相对于其他控制点策略的优先级的等级。17.根据权利要求11的方法,其特征在于,所述应用包括应用控制点策略执行的环境。18.根据权利要求11的方法,其特征在于,所述评价包括响应于已达到控制点而评价被应用的控制点策略过滤器以确定是否应采取应用的控制点策略行为。19.根据权利要求11的方法,其特征在于,该方法还包括保留被应用的控制点策略评价的历史。20.根据权利要求11的方法,其特征在于,该方法还包括维持控制点策略的数据库。21.一种用于通过灵活的策略管理数据库查询执行的计算机程序产品,该策略可被定义并被应用以在指定的操作控制点操作,该程序产品包括一个或多个数据存储媒体;记录在所述数据存储媒体上的编程装置,该编程装置编程共享的硬件资源系统以进行以下操作定义控制点策略;将控制点策略应用于数据库操作的范围;以及评价应用的控制点策略。22.根据权利要求21的计算机程序产品,其特征在于,所述定义包括定义可应用控制点策略的控制点。23.根据权利要求21的计算机程序产品,其特征在于,所述定义包括定义确定是否将执行控制点策略的控制点策略过滤器。24.根据权利要求21的计算机程序产品,其特征在于,所述定义包括定义将依据控制点策略执行的控制点策略行为。25.根据权利要求21的计算机程序产品,其特征在于,所述应用包括应用代表所述数据库操作范围的作用域。26.根据权利要求21的计算机程序产品,其特征在于,所述应用包括应用代表控制点策略相对于其他控制点策略的优先级的等级。27.根据权利要求21的计算机程序产品,其特征在于,所述应用包括应用控制点策略执行的环境。28.根据权利要求21的计算机程序产品,其特征在于,所述评价包括响应于已达到控制点而评价被应用的控制点策略过滤器以确定是否应采取应用的控制点策略行为。29.根据权利要求21的计算机程序产品,其特征在于,所述编程装置还适于编程所述共享的硬件资源的系统以进行保留被应用的控制点策略评价的历史的操作。30.根据权利要求21的计算机程序产品,其特征在于,所述编程装置还适于编程所述共享的硬件资源的系统以进行维持控制点策略的数据库的操作。全文摘要一种用于使用下面这样的控制点策略来管理数据库查询执行的系统、方法和计算机程序产品,该控制点策略可被(1)定义,(2)应用于数据库操作的范围,以及(3)在运行时间被评价以确定是否采取策略行为。控制点策略的“定义”可包括对(1)应用该控制点策略的操作控制点,(2)确定是否将执行该控制点策略的控制点策略过滤器,和(3)将依照该控制点策略执行的控制点策略行为的说明。控制点策略的“应用”包括对(1)数据库管理系统操作的作用域,(2)代表该控制点策略相对于其他控制点策略的优先级的等级,和(3)用于控制点策略执行的操作环境的说明。控制点策略的“评价”可包括在达到相关联的控制点时评价被应用的控制点策略的过滤器说明,以确定是否应采取该策略行为。文档编号G06F17/30GK1783086SQ20051012468公开日2006年6月7日申请日期2005年11月14日优先权日2004年12月3日发明者保罗·泰勒,罗伯特·格伯尔申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1