减少数据库系统中即席查询语句的装置和方法

文档序号:6433837阅读:128来源:国知局
专利名称:减少数据库系统中即席查询语句的装置和方法
技术领域
本发明涉及查询技术,具体而言,涉及减少数据库系统中即席查询语句的装置和方法。
背景技术
ERP系统是一类功能庞大而复杂的大型应用系统,其中存在许多复杂的业务计算。 这类系统通常都是基于大型关系数据库系统的,应用系统中的业务计算有很大的部分是由数据库执行的。数据库系统的性能将直接决定ERP系统的性能,数据库系统最容易出现瓶颈的是CPU资源。大量的即席查询,需要数据库系统频繁的进行执行计划编译,这种编译将大大消耗数据库CPU资源,影响系统的流畅性和用户体验效果。目前,减少即席查询通常的方法有两种程序中使用变量绑定方式或使用数据库系统提供的强制参数化机制,但这两种方法仅仅适用于查询语句简单,条件变量个数固定的场景,当查询语句的条件变量个数不固定时将失去作用,甚至对系统有害无益。因此,需要一种新的减少即席查询的技术,可以对非固定长度、数量的输入条件查询语句的数据条件进行格式汇总,令同类型查询语句使用相同的查询计划,以实现降低即席查询语句数量,提高查询效率。

发明内容
本发明正是基于上述问题,提出了一种新的减少即席查询的技术,可以对非固定长度、数量的输入条件查询语句的数据条件进行格式汇总,令同类型查询语句使用相同的查询计划,以实现降低即席查询语句数量,提高查询效率。有鉴于此,本发明提出了一种减少数据库系统中即席查询语句的装置,包括获取模块,在参与查询的条件变量的个数不固定时,获取所述条件变量中的同类变量;生成模块,利用编程语言中的集合对象汇总所述同类变量,生成至少一个变量集合对象;转换模块,根据所述编程语言使用的数据结构类型,将所述至少一个变量集合对象按照对应于所述数据结构类型的格式转换为至少一个XML数据串;解析模块,使用解析函数将所述XML数据串解析为子查询方式的结果集。在该技术方案中,通过将同类变量汇总至集合对象,并对该集合对象进行XML数据串的转换及解析,从而实现在非固定长度、数量的输入条件下,减少即席查询语句。这里进行汇总的条件变量可以包括多种类型,从而在汇总时可以得到多个集合对象,并在后续处理中同时进行处理。在上述技术方案中,优选地,还包括标记模块,在获取所述同类变量的位置进行标记;以及返回模块,将所述子查询方式的结果集返回至所述标记处。在该技术方案中,从 A处获取条件变量进行处理后,得到的结果还需要返回A处,通过在获取时进行标记,从而可以确保得到的结果得以及时、正确地处理。在上述技术方案中,优选地,还包括判断模块,判断所述XML数据串的合法性;以及修正模块,在所述XML数据串出现错误时,对所述错误进行修正。在该技术方案中,XML数
3据串在生成时可能出现语法错误等,因此需要进行合法性检查,并在发现错误时进行更正, 提高结果的可靠性。在上述技术方案中,优选地,还包括临时存储模块,在所述解析函数的内部定义临时存储区域,用于存储进行所述判断和/或所述解析的所述XML数据串。在该技术方案中,XML数据串作为中间数据,可以在解析函数的内部划分出一个临时存储区域,相当于缓存,从而对XML数据串进行暂存和处理,而不用每次从外部调取XML数据串,提高运算效率。在上述技术方案中,优选地,还包括函数创建模块,创建所述解析函数,并将所述解析函数存储于所述数据库中。在该技术方案中,在建立上述装置前,需要针对运行中可能出现的情况,预存需要用到的解析函数,从而避免在运行中出现无法解析等情形,提高运行的可靠性。根据本发明的又一方面,还提出了一种减少数据库系统中即席查询语句的方法, 包括步骤202,在参与查询的条件变量的个数不固定时,获取所述条件变量中的同类变量,并利用编程语言中的集合对象汇总所述同类变量,生成至少一个变量集合对象;步骤 204,根据所述编程语言使用的数据结构类型,将所述至少一个变量集合对象按照对应于所述数据结构类型的格式转换为至少一个XML数据串;步骤206,使用解析函数将所述至少一个XML数据串解析为子查询方式的结果集。在该技术方案中,通过将同类变量汇总至集合对象,并对该集合对象进行XML数据串的转换及解析,从而实现在非固定长度、数量的输入条件下,减少即席查询语句。这里进行汇总的条件变量可以包括多种类型,从而在汇总时可以得到多个集合对象,并在后续处理中同时进行处理。 在上述技术方案中,优选地,所述步骤202还包括在获取所述同类变量的位置进行标记;以及所述步骤206还包括将所述子查询方式的结果集返回至所述标记处。在该技术方案中,从A处获取条件变量进行处理后,得到的结果还需要返回A处,通过在获取时进行标记,从而可以确保得到的结果得以及时、正确地处理。在上述技术方案中,优选地,在所述步骤206之前,还包括判断所述XML数据串的合法性,以及在所述XML数据串出现错误时,对所述错误进行修正。在该技术方案中,XML数据串在生成时可能出现语法错误等,因此需要进行合法性检查,并在发现错误时进行更正, 提高结果的可靠性。在上述技术方案中,优选地,在所述步骤206中,还包括在所述解析函数的内部定义临时存储区域,所述临时存储区域用于存储进行所述判断和/或所述解析的所述XML 数据串。在该技术方案中,XML数据串作为中间数据,可以在解析函数的内部划分出一个临时存储区域,相当于缓存,从而对XML数据串进行暂存和处理,而不用每次从外部调取XML 数据串,提高运算效率。在上述技术方案中,优选地,还包括创建所述解析函数,并将所述解析函数存储于所述数据库中。在该技术方案中,在建立上述装置前,需要针对运行中可能出现的情况, 预存需要用到的解析函数,从而避免在运行中出现无法解析等情形,提高运行的可靠性。通过以上技术方案,可以对非固定长度、数量的输入条件查询语句的数据条件进行格式汇总,令同类型查询语句使用相同的查询计划,以实现降低即席查询语句数量,提高查询效率。


图1示出了根据本发明的实施例的减少数据库系统中即席查询语句的装置的框图;图2示出了根据本发明的实施例的减少数据库系统中即席查询语句的方法的流程图;图3示出了根据本发明的实施例的进行数据库查询的示意流程图;以及图4示出了根据本发明的实施例的减少数据库系统中即席查询语句的方法的示意流程图。
具体实施例方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式
对本发明进行进一步的详细描述。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。图1示出了根据本发明的实施例的减少数据库系统中即席查询语句的装置的框图。如图1所示,根据本发明的实施例的减少数据库系统中即席查询语句的装置100 包括获取模块102,在参与查询的条件变量的个数不固定时,获取条件变量中的同类变量;生成模块104,利用编程语言中的集合对象汇总同类变量,生成至少一个变量集合对象;转换模块106,根据编程语言使用的数据结构类型,将至少一个变量集合对象按照对应于数据结构类型的格式转换为至少一个XML数据串;解析模块108,使用解析函数将XML数据串解析为子查询方式的结果集;标记模块110,在获取同类变量的位置进行标记;返回模块112,将子查询方式的结果集返回至标记处;判断模块114,判断XML数据串的合法性;修正模块116,在XML数据串出现错误时,对错误进行修正;临时存储模块118,在解析函数的内部定义临时存储区域,用于存储进行判断和/或解析的XML数据串;函数创建模块120, 创建解析函数,并将解析函数存储于数据库中。在该技术方案中,通过将同类变量汇总至集合对象,并对该集合对象进行XML数据串的转换及解析,从而实现在非固定长度、数量的输入条件下,减少即席查询语句。这里进行汇总的条件变量可以包括多种类型,从而在汇总时可以得到多个集合对象,并在后续处理中同时进行处理。在上述技术方案中,从A处获取条件变量进行处理后,得到的结果还需要返回A 处,通过在获取时进行标记,从而可以确保得到的结果得以及时、正确地处理。在上述技术方案中,XML数据串在生成时可能出现语法错误等,因此需要进行合法性检查,并在发现错误时进行更正,提高结果的可靠性。在上述技术方案中,XML数据串作为中间数据,可以在解析函数的内部划分出一个临时存储区域,相当于缓存,从而对XML数据串进行暂存和处理,而不用每次从外部调取 XML数据串,提高运算效率。在上述技术方案中,在建立上述装置100前,需要针对运行中可能出现的情况,预存需要用到的解析函数,从而避免在运行中出现无法解析等情形,提高运行的可靠性。
图2示出了根据本发明的实施例的减少数据库系统中即席查询语句的方法的流程图。如图2所示,根据本发明的实施例的减少数据库系统中即席查询语句的方法包括步骤202,在参与查询的条件变量的个数不固定时,获取条件变量中的同类变量,并利用编程语言中的集合对象汇总同类变量,生成至少一个变量集合对象;步骤204,根据编程语言使用的数据结构类型,将至少一个变量集合对象按照对应于数据结构类型的格式转换为至少一个XML数据串;步骤206,使用解析函数将至少一个XML数据串解析为子查询方式的结果集。在该技术方案中,通过将同类变量汇总至集合对象,并对该集合对象进行XML数据串的转换及解析,从而实现在非固定长度、数量的输入条件下,减少即席查询语句。这里进行汇总的条件变量可以包括多种类型,从而在汇总时可以得到多个集合对象,并在后续处理中同时进行处理。在上述技术方案中,步骤202还包括在获取同类变量的位置进行标记;以及步骤 206还包括将子查询方式的结果集返回至标记处。在该技术方案中,从A处获取条件变量进行处理后,得到的结果还需要返回A处,通过在获取时进行标记,从而可以确保得到的结果得以及时、正确地处理。在上述技术方案中,在步骤206之前,还包括判断XML数据串的合法性,以及在 XML数据串出现错误时,对错误进行修正。在该技术方案中,XML数据串在生成时可能出现语法错误等,因此需要进行合法性检查,并在发现错误时进行更正,提高结果的可靠性。在上述技术方案中,在步骤206中,还包括在解析函数的内部定义临时存储区域,临时存储区域用于存储进行判断和/或解析的XML数据串。在该技术方案中,XML数据串作为中间数据,可以在解析函数的内部划分出一个临时存储区域,相当于缓存,从而对 XML数据串进行暂存和处理,而不用每次从外部调取XML数据串,提高运算效率。在上述技术方案中,还包括创建解析函数,并将解析函数存储于数据库中。在该技术方案中,在建立上述装置前,需要针对运行中可能出现的情况,预存需要用到的解析函数,从而避免在运行中出现无法解析等情形,提高运行的可靠性。图3示出了根据本发明的实施例的进行数据库查询的示意流程图。如图3所示,在进行数据库查询时,步骤如下步骤302,客户端发起查询请求,发出查询语句;步骤304,对于查询语句进行合法性检查,比如词法分析等,在不合法时,返回步骤 302,在合法时,进入步骤306 ;步骤306,通过关系代数优化器对查询语句进行优化;步骤308,在执行前需要由数据库系统首先产生出相应的执行计划,也就是查询语句如何执行的路径规划。数据库系统在接收到客户端的查询语句时首先会在查询语句缓冲池中进行查找,如果缓冲池中已经包含了该查询语句的执行计划,则直接进入步骤312,若不存在,则进入步骤310;步骤310,数据库系统将编译执行计划;步骤312,使用执行计划,执行查询;步骤314,返回查询结果。图4示出了根据本发明的实施例的减少数据库系统中即席查询语句的方法的示意流程图。如图4所示,根据本发明的实施例的减少数据库系统中即席查询语句的方法步骤如下步骤402,对于条件变量,可以是属于多个不同类型的多个条件变量;步骤404,使用编程语言中的集合对象将条件变量中的同类变量汇总起来,集合对象不限某种特定的数据结构,可以根据实际情况使用多种数据结构,遍历变量字符串,将变量拆分后插入集合对象中。在这里,返回数据结构是数组类型,定义传入ID的字符串,然后根据分隔符循环遍历字符串中的每隔值,将值放入数组中,将格式化的数组返回给调用者;步骤406,将前一步骤中得到的集合对象转换为XML数据串,这里声明一个返回字符串类型的方法,其传入参数是一个数组类型;在方法内部再声明一个数组,循环遍历传入的数组类型将其中的变量值赋值给新的数组类型。在遍历过程中根据变量类型的不同需要做不同的判断,整形可以直接赋值,字符串类型和时间类型需要转化成符合XML国际化字符集标准的样式;遍历结束后将其进行标准XML解析,使其符合XML的标准格式结构,返回给调用者;步骤408,使用对应的函数对上述步骤得到的XML数据串进行解析,这里首先需要判断传入XML字符串是否符合标准,防止直接执行导致错误。在函数内部定义临时存储区域,该区域可以以临时表或表变量形式存在。该区域只有一个XML类型的字段,然后对该 XML进行格式解析返回数组集合;此外,在建立整个查询系统之前,还需要事先将对XML数据串进行解析时需要用到的解析函数存储在装置4082中,这里的装置4082可以为存储装置或者是数据库;步骤410,将函数解析后得到的子查询记录集结果返回获取条件变量的位置,这里也就是说,在获取条件变量的时候,需要在获取的地点,如地点A进行标记,然后在得到子查询记录集结果后,要将该结果返回地点A,从而顺利进行之后的处理任务。以上结合附图详细说明了本发明的技术方案,考虑到以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种减少数据库系统中即席查询语句的装置,其特征在于,包括获取模块,在参与查询的条件变量的个数不固定时,获取所述条件变量中的同类变量;生成模块,利用编程语言中的集合对象汇总所述同类变量,生成至少一个变量集合对象;转换模块,根据所述编程语言使用的数据结构类型,将所述至少一个变量集合对象按照对应于所述数据结构类型的格式转换为至少一个XML数据串;解析模块,使用解析函数将所述XML数据串解析为子查询方式的结果集。
2.根据权利要求1所述的减少数据库系统中即席查询语句的装置,其特征在于,还包括标记模块,在获取所述同类变量的位置进行标记;以及返回模块,将所述子查询方式的结果集返回至所述标记处。
3.根据权利要求1所述的减少数据库系统中即席查询语句的装置,其特征在于,还包括判断模块,判断所述XML数据串的合法性;以及修正模块,在所述XML数据串出现错误时,对所述错误进行修正。
4.根据权利要求3所述的减少数据库系统中即席查询语句的装置,其特征在于,还包括临时存储模块,在所述解析函数的内部定义临时存储区域,用于存储进行所述判断和/ 或所述解析的所述XML数据串。
5.根据权利要求4所述的减少数据库系统中即席查询语句的装置,其特征在于,还包括函数创建模块,创建所述解析函数,并将所述解析函数存储于所述数据库中。
6.一种减少数据库系统中即席查询语句的方法,其特征在于,包括步骤202,在参与查询的条件变量的个数不固定时,获取所述条件变量中的同类变量, 并利用编程语言中的集合对象汇总所述同类变量,生成至少一个变量集合对象;步骤204,根据所述编程语言使用的数据结构类型,将所述至少一个变量集合对象按照对应于所述数据结构类型的格式转换为至少一个XML数据串;步骤206,使用解析函数将所述至少一个XML数据串解析为子查询方式的结果集。
7.根据权利要求6所述的减少数据库系统中即席查询语句的方法,其特征在于,所述步骤202还包括在获取所述同类变量的位置进行标记;以及所述步骤206还包括将所述子查询方式的结果集返回至所述标记处。
8.根据权利要求6所述的减少数据库系统中即席查询语句的方法,其特征在于,在所述步骤206之前,还包括判断所述XML数据串的合法性,以及在所述XML数据串出现错误时,对所述错误进行修正。
9.根据权利要求8所述的减少数据库系统中即席查询语句的方法,其特征在于,在所述步骤206中,还包括在所述解析函数的内部定义临时存储区域,所述临时存储区域用于存储进行所述判断和/或所述解析的所述XML数据串。
10.根据权利要求9所述的减少数据库系统中即席查询语句的方法,其特征在于,还包括创建所述解析函数,并将所述解析函数存储于所述数据库中。
全文摘要
本发明提供了一种减少数据库系统中即席查询语句的装置,包括获取模块,在条件变量的个数不固定时,获取其中的同类变量;生成模块,利用编程语言中的集合对象汇总同类变量,生成至少一个变量集合对象;转换模块,根据编程语言使用的数据结构类型,将至少一个变量集合对象按照对应于数据结构类型的格式转换为至少一个XML数据串;解析模块,使用解析函数将XML数据串解析为子查询方式的结果集。相应地,本发明还提供了一种减少数据库系统中即席查询语句的方法。通过本发明的技术方案,可以对非固定长度、数量的输入条件查询语句的数据条件进行格式汇总,令同类型查询语句使用相同的查询计划,以实现降低即席查询语句数量,提高查询效率。
文档编号G06F17/30GK102354318SQ20111028458
公开日2012年2月15日 申请日期2011年9月22日 优先权日2011年9月22日
发明者黄卫 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1