1.一种语句块执行计划的生成方法,其特征在于,包括:
获取当前语句块;
将所述当前语句块中关联有安全策略函数的第一语句改写为第二语句,其中,所述第一语句为插入语句、更新语句、删除语句或查询语句,所述第二语句为动态执行语句;
基于所述第一语句改写后得到的目标语句块生成所述当前语句块的目标执行计划。
2.根据权利要求1所述的方法,其特征在于,所述将所述当前语句块中关联安全策略函数的第一语句改写为第二语句,包括:
将所述当前语句块的引用安全策略函数标识置为false,并按照执行顺序将所述当前语句块中的第一条sql语句确定为当前sql语句;
解析所述当前sql语句,并判断所述当前sql语句是否为第一语句,若是,则将所述当前语句块的引用安全策略函数标识置为ture,并继续解析所述当前sql语句,直至所述当前sql语句解析完成;若否,则继续解析所述当前sql语句,直至所述当前sql语句解析完成;
判断所述当前语句块的引用安全策略函数标识是否为ture,若是,则将所述当前sql语句改写为动态执行语句,将所述当前语句块的引用安全策略函数标识重置为false,将所述当前语句块中的下一条sql语句确定为当前sql语句,并返回执行解析所述当前sql语句的操作,直至不存在下一条sql语句为止;若否,则将所述当前语句块中的下一条sql语句确定为当前sql语句,并返回执行解析所述当前sql语句的操作,直至不存在下一条sql语句为止。
3.根据权利要求1所述的方法,其特征在于,在所述基于所述第一语句改写后得到的目标语句块生成所述当前语句块的目标执行计划之后,还包括:
依据所述目标执行计划执行所述当前语句块。
4.根据权利要求1-3任一所述的方法,其特征在于,在所述基于所述第一语句改写后得到的目标语句块生成所述当前语句块的目标执行计划之后,还包括:
将所述当前语句块与所述目标执行计划对应存储于承载有所述当前数据库的计算机设备中。
5.根据权利要求4所述的方法,其特征在于,在所述将所述当前语句块中关联有安全策略函数的第一语句改写为第二语句之前,还包括:
确定承载有所述当前数据库的计算机设备中未存储与所述当前语句块相同的历史语句块。
6.根据权利要求5所述的方法,其特征在于,还包括:
如果承载有所述当前数据库的计算机设备中存储有与所述当前语句块相同的历史语句块,则获取所述历史语句块的执行计划,作为所述当前语句块的目标执行计划。
7.一种语句块执行计划的生成装置,其特征在于,包括:
语句块获取模块,用于获取当前语句块;
语句改写模块,用于将所述当前语句块中关联有安全策略函数的第一语句改写为第二语句,其中,所述第一语句为插入语句、更新语句、删除语句或查询语句,所述第二语句为动态执行语句;
计划生成模块,用于基于所述第一语句改写后得到的目标语句块生成所述当前语句块的目标执行计划。
8.根据权利要求7所述的装置,其特征在于,所述语句改写模块具体用于:
将所述当前语句块的引用安全策略函数标识置为false,并按照执行顺序将所述当前语句块中的第一条sql语句确定为当前sql语句;
解析所述当前sql语句,并判断所述当前sql语句是否为第一语句,若是,则将所述当前语句块的引用安全策略函数标识置为ture,并继续解析所述当前sql语句,直至所述当前sql语句解析完成;若否,则继续解析所述当前sql语句,直至所述当前sql语句解析完成;
判断所述当前语句块的引用安全策略函数标识是否为ture,若是,则将所述当前sql语句改写为动态执行语句,将所述当前语句块的引用安全策略函数标识重置为false,将所述当前语句块中的下一条sql语句确定为当前sql语句,并返回执行解析所述当前sql语句的操作,直至不存在下一条sql语句为止;若否,则将所述当前语句块中的下一条sql语句确定为当前sql语句,并返回执行解析所述当前sql语句的操作,直至不存在下一条sql语句为止。
9.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的语句块执行计划的生成方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的语句块执行计划的生成方法。