【技术实现步骤摘要】
一种提示子句指定方法、装置、设备及存储介质
本专利技术实施例涉及数据库技术,尤其涉及一种提示子句指定方法、装置、设备及存储介质。
技术介绍
结构化查询语言(StructuredQueryLanguage,SQL语言)是最重要也是最常用的关系数据库操作语言,SQL语句在数据库中一般要经过词法、语法、语义分析,然后由优化器生成执行计划,最后由执行器执行计划。在一般情况下,优化器会探测各种可能的执行计划并计算比较每个执行计划的代价,然后选出相对最优的执行计划,但有时,由于优化器的代价估算不够准确,或用户进行的一些不合适的系统配置会导致优化器没有探测到最优的执行计划。提示子句被一些数据库用来作为解决这种情况的手段,它让用户可以在一定程度上人工干预执行计划的生成。一般来说,提示子句HINT都是写在SQL语句中的,数据库管理系统在语法语义分析时将所有HINT信息取出来,并在优化器生成执行计划时根据这些HINT信息确保执行计划树的对应部分生成用户预期的执行计划节点。但是在有些情况下,上述方式显得不够灵活。例如,实际项目应用过程中,对于一部分执行起来性能低下的SQL语句,可以通过 ...
【技术保护点】
1.一种提示子句指定方法,其特征在于,包括:建立关于SQL语句与提示子句的对应关系的哈希表;根据所述哈希表为目标SQL语句指定与之匹配的目标提示子句。
【技术特征摘要】
1.一种提示子句指定方法,其特征在于,包括:建立关于SQL语句与提示子句的对应关系的哈希表;根据所述哈希表为目标SQL语句指定与之匹配的目标提示子句。2.根据权利要求1所述的方法,其特征在于,还包括:获取函数名称为目标函数名称的系统函数,其中,所述系统函数包括第一参数和第二参数;根据所述第一参数查找所述哈希表,获取与所述第一参数对应的哈希槽;若所述哈希槽中存在与所述第一参数相同的SQL语句,则将所述哈希表中的与所述第一参数相同的SQL语句对应的提示子句替换为所述第二参数。3.根据权利要求2所述的方法,其特征在于,还包括:若所述哈希槽中不存在与所述第一参数相同的SQL语句,则将所述SQL语句与所述第二参数存储至所述哈希槽。4.根据权利要求2所述的方法,其特征在于,根据所述第一参数查找哈希表,获取与所述第一参数对应的哈希槽包括:获取所述第一参数的哈希值;根据所述哈希值查找哈希表,获取与所述哈希值对应的哈希槽。5.根据权利要求2所述的方法,其特征在于,还包括:依次判断所述第二参数中的提示子句是否属于提示子句列表,其中,所述第二参数至少包括一个提示子句;若所述第二参数中的提示子句均属于所述提示子句列表,相应的,若所述哈希槽中存在与所述第一参数相同的SQL语句,则将所述哈希表中的与所述第一参数相同的SQL语句对应的提示子句替换为所述第二参数包括:若所述哈希槽中存在与所述第一参数相同的SQL语句,则将所述哈希表中的与所述第一参数相同的SQL语句对应的提示子句替换为所述第二参数;若所述第二参数中存在不属于所...
【专利技术属性】
技术研发人员:万伟,朱仲颖,张钦,
申请(专利权)人:上海达梦数据库有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。