关系数据库中事件序列查询的基准测试
1 事件序列查询的挑战
事件序列查询通常聚焦于有趣的罕见案例。由于分析目标的稀有性以及每个关联事件发生的时间接近性,从事件发生关系中进行的每次选择的选择性可能低于 0.1 - 1%。这导致查询工作负载往往是高选择性扫描和严重倾斜的连接操作。
高效处理倾斜连接是一个难题。关系数据库系统通常实现多种连接算法,如嵌套循环连接、哈希连接、排序合并连接等,并根据记录数量、属性的数据分布、属性之间的相关性、连接生产率等统计信息选择估计最优的算法。因此,估计连接操作的统计信息,特别是连接基数估计的准确性,会显著影响查询处理性能。
基数估计误差主要有两个原因:
1. 多次连接导致的误差放大。例如,在五个关系的连接中,如果每个组合的基数估计误差为 20%,最终误差会放大到 207%。
2. 连接条件中属性之间的相关性。一般来说,连接之间的相关性越强,连接基数估计的准确性往往越低。
综上所述,执行由高选择性扫描和许多自连接操作组成的事件序列查询并非易事。尽管事件序列查询在许多实际应用中很重要,但相关的性能研究却很少,且目前没有针对事件序列查询的基准测试。
2 ESQUE 基准测试的初始设计
为了对关系数据库中的事件序列查询进行性能评估,设计了 ESQUE 基准测试。在数据集生成方面,采用了 TPC - H 基准测试数据集,而非设计专用数据集。这样做的好处是,对于熟悉 TPC - H 的研究人员和从业者来说,ESQUE 基准测试更具可用性和可理解性。TPC - H 数据集的模式模仿了批发商的数据库,包含订单和行项目表,可视为事件发生关系,适合用于 ESQUE 基准测试。
超级会员免费看
订阅专栏 解锁全文
1268

被折叠的 条评论
为什么被折叠?



