首页>软件资讯>常见问题

常见问题

Starburst是什么软件

发布时间:2025-04-21 12:06:21人气:36

starburst是ibm实现的一个数据库原型系统,主要的文章如下。其主打的功能是优化器的可拓展性。

数据库优化器一般包括三个组件:plan枚举、搜索策略、代价模型。

《基于动态规划的优化器》总体策略是如下图,自底向上枚举所有的plan,并计算代价。换句话说,但每个节点具体如何枚举出所有的plan,我们并没有展开详细介绍。


如果是进行硬编码的方式进行枚举的话,拓展性必定很差。如果数据库增加新的操作符、索引类型、数据类型等,优化器上都需要很大量的工作增加枚举策略。


而starburst是ibm创建的一个原型系统,现如今的DB2也是采用的类似策略。他主要采用函数式编程的思想,提出了一个grammar-like的规则,用于枚举节点。



grammar-like rules


starburst定义的grammar规则大体如下:

我们看这一套规则,其实很类似语法分析yacc等工具的规则。不同的是,yacc是把语法规则的右侧归约成等式左侧的内容。而这里是把等式左侧的算子替换成右侧的算子。直到替换成都是基础物理算子为止,注意,会替换出很多种方案。


动态规划starburst的规则,主要在动态规划的枚举时可以用到。如图椭圆框出的Join(Join(A1,A3),A2)可以枚举出多少种方案,这个是通过上述grammar-like的规则生成的。

动态规划.png

划重点:starburst是一种枚举规则,是对system r的动态规划的一种改进。优点是,可维护性更强。枚举不再是硬编码的形式,而是通过规则定制。

案例.png


上一条:Cursor使用教程

下一条:Starburst美国大数据服务商.