1 .一种分布式数据库分布键的优选方法,其特征在于,包括:
收集分布式数据库在运行期间执行的SQL语句和每条SQL语句的运行信息;
记录分布式数据库中每张表的重分布代价以及非重分布代价,并记录与每张表相关联
的候选键;
根据收集的运行信息,对每条SQL语句的运行信息进行处理,计算出每张表中每个相关
联的候选键的代价并选出最优分布键;
将最优分布键应用到分布式数据库中;
其中,计算出每张表中每个相关联的候选键的代价并选出最优分布键的过程包括:
计算非重分布代价H
Tm
,对于每张表Tm,计算所有SQL查询中当前表的非重分布代价之
和,其公式为:
计算重分布代价H
Tm‑Fn
,对于表Tm中的每个候选键Fn,计算所有SQL查询中的重分布代价
之和,其公式为: ;
选择最优分布键:对于每张表Tm,比较非重分布代价和所有候选键的重分布代价,并找
出集合{H
Tm
,H
Tm‑F1
,H
Tm‑F2
,… ,H
Tm‑FN
}中的最大值;
若最大值为H
Tm
,则当前的分布键是最优的;
若最大值为H
Tm‑Fn
,则将最优分布键更换为Fn。
2.根据权利要求1所述的一种分布式数据库分布键的优选方法,其特征在于:
收集分布式数据库在运行期间每条SQL语句的运行信息的过程包括:
在分布式数据库中修改优化器,根据分布式数据库的统计信息生成对SQL语句的运行
信息的估计值;
在分布式数据库中修改执行器,根据SQL语句的执行过程统计SQL语句的运行信息。
3 .根据权利要求2所述的一种分布式数据库分布键的优选方法,其特征在于:
在分布式数据库中修改分布式数据库的优化器或执行器,收集SQL语句的运行信息的
过程包括:
将运行信息的收集过程中涉及SQL查询的关联条件字段,作为分布列的候选键;
在收集过程中,保存收集的运行信息,在收集结束后进行汇总统计。
4 .根据权利要求1所述的一种分布式数据库分布键的优选方法,其特征在于:
当收集到满足计算每张表的代价的SQL语句运行信息后,调用停止函数停止数据收集,
在停止函数中遍历收集到的信息,开始计算每张表的代价。
5 .一种电子设备,包括处理器以及与处理器通信连接,且用于存储所述处理器可执行
指令的存储器,其特征在于:所述处理器用于执行上述权利要求1‑4任一所述的一种分布式
数据库分布键的优选方法。
6 .一种服务器,其特征在于:包括至少一个处理器,以及与所述处理器通信连接的存储
器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,
以使所述至少一个处理器执行如权利要求1‑4任一所述的一种分布式数据库分布键的优选
方法。
7 .一种计算机可读取存储介质,存储有计算机程序,其特征在于:所述计算机程序被处
理器执行时实现权利要求1‑4任一项所述的一种分布式数据库分布键的优选方法。
权 利 要 求 书
1/1 页
2
相关文档
评论