【技术实现步骤摘要】
【国外来华专利技术】用于索引编译以优化索引使用的系统、方法和设备
本文中所描述的专利技术主题总体涉及关系数据库管理系统,更具体地,涉及通过索引编译增强任何查询执行期间中央处理单元的性能。
技术介绍
结构化查询语言(structuredquerylanguage,SQL)是一种用于存储、检索和查询关系数据库系统中保存的数据的数据库查询和编程语言。连续查询语言(sequentialquerylanguage,SQL)的开发始于1974年,由Boyce和Chamberlin提出,当时被称为SEQUEL;1976年,IBM公司的Sanjese研究所在开发RDBMSSYSTEMR时对SQL作了更改;ORACLE公司于1979年首次发布了基于SQL的商业化RDBMS产品;美国国家标准化组织ANSI于1986年宣布SQL成为数据库工业标准。众所周知,SQL语言包含四个部分:●数据定义语言(datadefinitionlanguage,DDL),包含CREATE、DROP、ALTER。●数据操纵语言(datamanipulationlanguage,DML),包含INSERT、UPDATE和DELETE。●数据查询语言(dataQuerylanguage,DQL),包含SELECT。●数据管理语言(datamanagementlanguage,DCL),包含SQL语句,如GRANT、REVOKE、COMMIT和ROLLBACK。任何SQL语句由RDBMS通过以下步骤处理:1.解析(语法检查):解析SQL语句的语法并确定其是否符合标准。2.分析:检查SQL语句中使用的对象(表、列等)是否存在于 ...
【技术保护点】
一种通过编译INDEX以从数据库得到数据的系统,所述系统用于对一个或多个查询进行响应,所述一个或多个查询中包括至少一个用于编译所述INDEX的命令,其特征在于,所述系统包括:处理器,用于:在本地编译所述查询,为响应所述查询,生成对应于所述查询中的每个INDEX的C‑文件,以及基于生成的所述C‑文件生成共享对象文件,所述共享对象文件包括至少一个结构和至少一种机制,所述至少一个结构和至少一个机制用于基于所述数据库中的索引列对INDEX执行至少一种操作,其中所述共享对象文件是动态链接库文件。
【技术特征摘要】
【国外来华专利技术】2015.03.21 IN 1439/CHE/20151.一种通过编译INDEX以从数据库得到数据的系统,所述系统用于对一个或多个查询进行响应,所述一个或多个查询中包括至少一个用于编译所述INDEX的命令,其特征在于,所述系统包括:处理器,用于:在本地编译所述查询,为响应所述查询,生成对应于所述查询中的每个INDEX的C-文件,以及基于生成的所述C-文件生成共享对象文件,所述共享对象文件包括至少一个结构和至少一种机制,所述至少一个结构和至少一个机制用于基于所述数据库中的索引列对INDEX执行至少一种操作,其中所述共享对象文件是动态链接库文件。2.根据权利要求1所述的系统,其特征在于,所述查询是CREATEINDEX语句,该CREATEINDEX语句携带有通过编译所述INDEX来创建所述共享对象文件的命令。3.根据任一前述权利要求所述的系统,其特征在于,所述系统用于:基于接收到的所述查询,创建对应于所述索引的结构;基于接收到的所述查询中的INDEX定义创建用于访问索引元组值的至少一个访问函数,以及用于为索引元组找到适当的空隙的至少一条指令,所述INDEX定义是通过CREATEINDEX语句的一部分给出的,其中通过每个INDEX生成的所述访问函数的数量总是相同的;将创建的所述结构、生成的所述访问函数,以及生成的所述指令存储在缓冲区中,以及基于存储的所述结构、所述访问函数和所述指令创建C-文件;使用至少一个预先存储的编译器编译创建的所述C-文件,以便从所述C-文件生成文件,其中所述文件是动态链接库文件;以及将所述文件连同至少一个可执行文件一起在所述系统中加载以用于执行所述查询。4.根据任一前述权利要求所述的系统,其特征在于,所述共享对象文件包括所述INDEX中列的列表中的至少一个列、用于索引元组值的一个或多个访问函数和用于为索引元组找到适当的空隙的一条或多条指令中的一个或多个。5.根据任一前述权利要求所述的系统,其特征在于,所述系统用于为所述INDEX创建系统表,并根据INDEX是否需要编译在所述系统表中存储选项,其中所述选项从以下中的至少一种选择:“真”,如果所述查询中存在用于创建文件的命令,或“假”,如果所述查询中不存在用于创建文件的命令。6.根据任一前述权利要求所述的系统,其特征在于,所述共享对象文件包括为所述INDEX生成的一个或多个函数指针,其中生成的所述函数指针存储在一个或多个关系描述符表中。7.根据任一前述权利要求所述的系统,其特征在于,关系描述符存储在为所有关系创建的缓存存储器中,所述关系描述符是使用所述对应关系(即表或索引)的所述系统表形成。8.根据任一前述权利要求所述的系统,其特征在于,所述共享对象文件如下生成:当接收到查询时,如果所述查询具有用于编译所述INDEX的命令,那么所述系统基于所述INDEX和接收到的所述查询生成C-文件,然后通过编译生成的所述C-文件生成共享对象文件。9.根据任一前述权利要求所述的系统,其特征在于,所述共享对象文件由应用、其它动态链接库,及其任意组合中的至少一种使用。10.根据任一前述权利要求所述的系统,其特征在于,所述共享对象文件在创建所述INDEX时基于以下条件命名:INDEX的名称,其中所述索引的名称随同所述CREATEINDEX查询一起获得;唯一编号,由所述系统生成,作为分配给每个索引的标识符;以及利用所述C-文件的名称创建所述共享对象文件,命名为所述名称和所述标识符的串联。11.根据任一前述权利要求所述的系统,其特征在于,当接收到新查询时,所述系统用于:检查随同所述查询一起接收到的INDEX是否是主题绑定的,其中提供标志以指示元组是否属于主题绑定索引;如果所述索引是主题绑定的,利用存储到与所述INDEX相关联的所述对应的关系描述符中的所述函数指针,以调用为所述新查询的执行生成的所述共享对象文件。12.根据任一前述权利要求所述的系统,其特征在于,所述查询以包括CREATEINDEX查询连同[COMPILE]选项的格式接收。13.一种用于编译使得可从数据库得到数据的INDEX的设备,所述设备对包括用于编译所述INDEX的至少一个命令的一个或多个查询进行响应,其特征在于,所述设备包括:用于接收用于查询所述数据库的所述查询的输入/输出硬件;处理器,用于指定所述查询,其中所述查询包括具有用于通过编译所述INDEX创建文件的命令的“CREATEINDEX”语句;与所述处理器耦合的存储器,其中针对用于编译的所述命令,所述存储器为所述处理器提供用于执行以下操作的指令:响应于所述命令,在本地编译所述查询,以生成对应于所述查询中的每个INDEX的C-文件,并由此基于生成的所述C-文件生成共享对象文件,所述共享对象文件包括用于基于所述数据库中的索引列对INDEX执行至少一种操作的至少一个结构和至少一种机制,其中所述共享对象文件是动态链接库文件。14.根据权利要求13所述的设备,其特征在于,所述设备用于:基于接收到的所述查询,创建对应于所述索引的结构;基于接收到的所述查询,创建用于索引元组值的至少一个访问函数,以及用于为索引元组找到适当的空隙的至少一条指令;将创建的所述结构、生成的所述访问函数,以及生成的所述访问函数存储在缓冲区中,并基于存储的结构、访问函数和指令创建C-文件;使用至少一个预先存储的编译器编译创建的所述C-文件;由此从所述C-文件生成共享对象文件,其中所述共享对象文件是动态链接库文件;以及将所述文件连同至少一个可执行文件一起在所述设备中加载以用于所述查询的执行。15.根据任一前述权利要求所述的设备,其特征在于,所述共享对象文件包括所述INDEX中列的列表中的至少一个列、用于索引元组值的一个或多个访问函数、用于为索引元组找到适当的空隙的一条或多条指令,及其任意组合。16.根据任一前述权利要求所述的设备,其特征在于,所述设备用于...
【专利技术属性】
技术研发人员:库马尔·拉吉夫·拉丝拓吉,迪尼普·库马尔,尼雅玛拉·斯瑞坎塔雅,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。