[发明专利]一种SQL语句执行频次动态调整方法有效
申请号: | 201510402260.6 | 申请日: | 2015-07-10 |
公开(公告)号: | CN104933190B | 公开(公告)日: | 2018-04-17 |
发明(设计)人: | 程永新;宋辉;孙田 | 申请(专利权)人: | 上海新炬网络信息技术股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海科律专利代理事务所(特殊普通合伙)31290 | 代理人: | 袁亚军,金碎平 |
地址: | 201707 上海市青浦区外青*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 语句 执行 频次 动态 调整 方法 | ||
1.一种SQL语句执行频次动态调整方法,其特征在于,包括如下步骤:
a)监听客户端的发送请求,获取操作数据库的SQL语句;
b)对获取的SQL语句进行解析,将SQL中谓词条件进行规整化处理,统一绑定变量,并为统一规整化处理后SQL语句分配新的SQL_ID;
c)在数据库服务端定期采集各规整后SQL语句的执行频次;
d)如果存在执行频次超过预设频次阀值的SQL语句,产生新的SQL语句替换原有SQL语句,重复步骤b),并将规整化处理后的新SQL转发至数据库服务端运行。
2.如权利要求1所述的SQL语句执行频次动态调整方法,其特征在于,所述步骤b)从ORACLE数据库中查询系统统计信息表视图DBA_TAB_COL_STATISTICS,采集字段NUM_DISTINCT获取SQL中涉及谓词的唯一值,如果SQL中涉及谓词的唯一值低于预设阀值,则不进行规整化处理。
3.如权利要求1所述的SQL语句执行频次动态调整方法,其特征在于,所述步骤b)将SQL中谓词按如下方式统一绑定变量:未使用绑定变量的SQL,使用依次递增变量代码代替常量;已使用绑定变量的SQL,使用依次递增变量代码代替原绑定变量。
4.如权利要求1所述的SQL语句执行频次动态调整方法,其特征在于,所述步骤b)按如下方式对统一规整化处理后SQL语句分配新的SQL_ID:对SQL语句通过md5方式进行散列,再对散列结果进行base32编码,每五位转换为一个Base32编码,转换后的Base32编码即为该SQL语句对应的SQL_ID。
5.如权利要求1所述的SQL语句执行频次动态调整方法,其特征在于,所述步骤c)中SQL语句的执行频次freq采集计算如下:
freq=EXECUTIONS/(LAST_ACTIVE_TIME-LAST_LOAD_TIME)*24*60;
EXECUTIONS为该SQL语句的执行次数,LAST_ACTIVE_TIME为最后活动时间,LAST_LOAD_TIME为最后载入时间。
6.如权利要求1所述的SQL语句执行频次动态调整方法,其特征在于,所述步骤d)中预设频次阀值的设置如下:遍历数据库中的节点,每个节点取所有前端业务对应的SQL语句的执行频次中间值,最后取所有节点的执行频次中间值的平均值作为预设频次阀值f。
7.如权利要求6所述的SQL语句执行频次动态调整方法,其特征在于,所述步骤d)第n个节点的执行频次中间值mn的计算方法如下:
b1)从数据库活动历史会话视图中获取EVENT="Cursor:Pin S"的所有SQL_ID和样例时间SAMPLE_TIME;
b2)筛选数据库历史快照视图,条件为样例时间SAMPLE_TIME在快照开始时间BEGIN_INTERVAL_TIME和快照结束时间END_INTERVAL_TIME之间,且SQL_ID相等,得到SNAP_ID;
b3)根据SNAP_ID和SQL_ID,得到数据库SQL历史状态视图中的执行次数EXECUTION_DELTA;
b4)根据SNAP_ID,指定STAT_NAME="DB time",得到数据库历史情况统计视图中的统计值VALUE。
8.如权利要求7所述的SQL语句执行频次动态调整方法,其特征在于,所述预设频次阀值f计算公式如下:
mn=DBA_HIST_SQLSTAT.EXECUTION_DELTA/(DBA_HIST_SNAPSHOT.END_INTERVAL_TIME-DBA_HIST_SNAPSHOT.BEGIN_INTERVAL_TIME);
wn=DBA_HIST_SYS_TIME_MODEL.VALUE;
其中,DBA_HIST_SNAPSHOT为数据库历史快照视图,DBA_HIST_SQLSTAT为数据库SQL历史状态视图,DBA_HIST_SYS_TIME_MODEL为数据库历史情况统计视图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海新炬网络信息技术股份有限公司,未经上海新炬网络信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510402260.6/1.html,转载请声明来源钻瓜专利网。