提示定制工具与方法技术

技术编号:2831675 阅读:238 留言:0更新日期:2012-04-11 18:40
本申请涉及提示的定制工具与方法。根据本发明专利技术,提供至少一个提示服务适配器,用于搜集不同的数据库平台的相关信息,将定制好的提示在真实的数据库平台上进行验证并提供反馈,并用于将定制好的提示部署到数据库平台上,并提供提示定义装置,用于与平台无关地定制提示,并将定制好的提示提供给所述至少一个提示服务适配器。

【技术实现步骤摘要】

本申请涉及数据库管理系统中的SQL (结构化查询语言)提示机 制(也称为优化提示),尤其涉及提示的定制,包括提示的验证。
技术介绍
几家主要的DBMS (数据库管理系统)供应商比如IBM、微软和 Oracle公司都支持SQL (结构化查询语言)提示机制(SQL hint mechanism)(也称为优化提示等)。SQL提示机制为有经验的数据 库管理员(DBA)提供了一种建议或者要求SQL优化器基于DBA指定 的标准定制访问计划(access plan)的某些部分或者全部的途径。例 如,用户可能知道,对于特定的查询,某个索引的选择性更好,如果 选择该索引的话效果更佳。基于他的知识,用户可能会想使用SQL提 示来指引优化器使用该索引,而不管优化器的决定是什么.但是,为 了使用当前的SQL提示,它要求很髙的SQL调优技巧或者经验,而且 包括创建、验证、部署在内的整个过程是一个非常冗长而费时的过程。原因在于1. SQL提示是专属地生成的。例如,为了生成提示,对于DB2for z/OS,DBA需要更新访问计划表(PLAN—TABLE)并设置特定的注册 信息(register)。对于Oracle或者SQL Server, DBA需要通过SQL追 加或注释的方式来使用SQL提示,对于DB2 for LUW, DBA需要在 SQL语句的末尾附加一些XML文本。在如今的企业异构数据库环境 中,这极大地增加了DBA的负担,因为他们需要掌握每一个平台SQL 提示机制的细节。2. 需要手工指定SQL提示。对于非常复杂的查询,例如包含IOO 个谓词(predicate)和20个表的查询,DBA要使提示正确是很难的而 且冗长的工作。3.需要手工验证SQL提示。提示在语法方面正确是不够的,提 示可能因为沖突而无效。尽管各种DBMS都提供了对提示的使用的一 些反馈,但是它们通常对用户都不甚友好。显然,需要有一种有效的解决方案来解决至少部分上述问题。
技术实现思路
因此,本专利技术的目的之一是提供一种提示定制工具,能够使用户 与数据库平台无关地定制提示。本专利技术的另一个目的是提供一种与平 台无关地定制提示的方法。为实现上述目的,根据本专利技术的第一方面,提供了一种提示定制 工具,包括至少一个提示服务适配器,用于搜集不同的数据库平台 的相关信息,将定制好的提示在真实的数据库平台上进行验证并提供 反馈,并用于将定制好的提示部署到数据库平台上;以及提示定义装 置,用于与平台无关地定制提示,并将定制好的提示提供给所述至少 一个提示服务适配器。根据本专利技术的笫二方面,提供了一种提示定制方法,包括下述步 骤a.根据数据库平台的类型选择相应的提示服务适配器;b.分析输 入的SQL查询,获得表连接图和默认表联接顺序图,表联接顺序图包 括表节点和表联接方法节点;c.修改所述默认表联接顺序困中各表的 联接顺序,获得表联接顺序图,并配置所述默认表联接顺序困或者表 联接顺序图中各表节点以及表联接方法节点的属性;d.依据在前一步 骤的结果生成提示;e.通过提示服务适配器在数据库平台环境中验证 所生成的提示,并在必要时将验证结果反馈给步骤c,重复步骤c到e, 直到得到合乎需要的提示;f.通过提示服务适配器将生成的提示部署 到数据库平台中。附图说明下面结合附图对本专利技术的具体实施方式加以说明,附困中图l是本专利技术的提示定制工具的一种优选实施方式的框图; 图2是本专利技术的提示定制工具的另一种优选实施方式的框图; 图3A是表联接图的 一个举例;图3B是困3 A所示表联接困所对应的默iA^联接顺序图的 一个举例; 图4是定义节点属性的实施方式的举例; 图5是本专利技术的提示定制方法的一种优选实施方式的流程困; 图6是本专利技术的提示定制方法的另一种优选实施方式的流程困。具体实施方式本专利技术的主要目的在于解决DBA需要针对不同的数据库平台定 制提示的问题。为此,本专利技术提出了一种新的解决方案,即,提供基 于SQL查询的通用的提示定义装置,以及SQL提示服务适配器(以下 简称适配器),利用适配器作为数据库平台和提示定义装置之间的中 介,在数据库平台中验证提示定义装置所定义的提示,并在数据库平 台中部署通过验证的提示。不同的数据库平台需要不同的适配器。在本专利技术的一种实施方式 中,可以针对不同的数据库平台提供不同的适配器,由DBA根据所使 用的数据库平台来选择相应的适配器。为了进一步便利DBA,可以提供一个选择器,其探测数据库平台 的相关信息,据以确定数据库平台的类型和版本,从而选用合适的适 配器。困1图示了该优选的实施方案的提示定制工具100。如困所示,有 多个适配器106、 108、 110、 112,每一个适配器对应于一种数据库平 台。选择器104根据从数据库102获得数据库的类型和版本,从而选择 合适的适配器.DBA使用提示定义装置114基于输入的SQL定制提示, 并通过适配器来在实际的数据库平台中验证,并将通过验证的提示部 署到数据库平台中。作为更为优选的实施方案,图1所示的提示定制工具100的提示定 义装置114进一步包括分析器116、配置装置120和提示生成装置122。 分析器分析输入的SQL查询,结合从适配器得到的数据库平台的系统 信息,得到表联接图和默认表联接顺序图。表联接图表示一个SQL查 询所涉及的表以及表之间的相互关系。依据SQL分析数据,可以提取 出SQL执行过程中所涉及到的所有表以及表之间的相关关系。依据从 数据库得到的数据库平台的系统信息,可以获知它们更进一步的相关 的信息,例如表中定义的列、索引(index)以及统计信息等。表联接 顺序图表示执行该SQL查询时,访问各表的顺序。表联接顺序可以是 合乎表联接图的逻辑的任意顺序。但是,可以使表联接顺序是合乎表 联接图的逻辑的最优顺序。此外,还可以基于查询的历史和过去已定 义的提示来对该顺序加以约束,给出默认表联接顺序困。所述表联接图和默认表联接顺序图可以在图形用户界面上予以 直观形象的显示。如图3A所示,每一个方框节点代表一个表。框之间 的连线表示所连的两个框相关,对应于查询中的谓词(predicate)。 该图用来展示查询中的表是如何联接的。联接图不仅指出查询中的表 是如何联接的,还包含原存储方案的各种属性。在初始状态,可以提 供联接图的自动布局,以改善用户的视觉体验。用户还可以用拖放操 作对其重新进行手工布局。在图上,由可视方案提示提供了两个切换 按钮(trigger),允许用户显示本地谓词和联接谓词。图3B所示为基于图3A的表联接图的默认表联接顺序困。图中, 各表在困形用户界面上的排列顺序就表示了表联接顺序。联接每两个 表的节点表示联接方法。用户可以从图3A的联接图推知表以什么顺序 联接是最有效率的。默认的联接顺序是在数据库优化器不使用提示情 况下确定的表间联接关系。通过调整默认联接顺序,用户能够容易地 生成自己提示所需的联接顺序。配置装置120可以对图3B所示的表联接顺序图进行修改。例如, 可以对表进行拖放,移动到图3B所示表联接顺序图中的适当位置,从 而完成对表联接顺序的修改。当用户定义其联接顺序图时,可以高亮 标记已经使用了的节点,自动检查首表等,以协助用户的定义。一般来说,除了表的联接顺序之外,提示还可以本文档来自技高网
...

【技术保护点】
一种提示定制工具,包括:至少一个提示服务适配器,用于搜集不同的数据库平台的相关信息,将定制好的提示在真实的数据库平台上进行验证并提供反馈,并用于将定制好的提示部署到数据库平台上;提示定义装置,用于与平台无关地定制提示,并将定制好的提示提供给所述至少一个提示服务适配器。

【技术特征摘要】
1.一种提示定制工具,包括至少一个提示服务适配器,用于搜集不同的数据库平台的相关信息,将定制好的提示在真实的数据库平台上进行验证并提供反馈,并用于将定制好的提示部署到数据库平台上;提示定义装置,用于与平台无关地定制提示,并将定制好的提示提供给所述至少一个提示服务适配器。2. 如权利要求l所述的提示定制工具,还包括选择器,用于在连 接到数据库平台时分析数据库平台的类型,并选择相应的提示服务适 配器。3. 如权利要求1或2所述的提示定制工具,其中,所述提示定义 装置包括分析器,用于分析输入的SQL查询,获得表连接困和默认表联接 顺序图,表联接顺序图包括表节点和表联接方法节点;配置装置,用于修改所述默认表联接顺序图中各表的联接顺序, 获得表联接顺序围,并配置所述默认表联接顺序困或者表联接顺序图 中各表节点以及表联接方法节点的属性;以及提示生成装置,用于依据分析器和配置装置的结果生成提示。4. 如权利要求1到3之一所述的提示定制工具,还包括实时验证 装置,用于根据相应的提示服务适配器所提供的有关数据库平台的相 关信息,在所述配置装置的修改和配置过程中对要生成的提示...

【专利技术属性】
技术研发人员:任鲲鹏粱高中刘展华杨文傅毓勤孙冰江魏可伟
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1