SQL中CUBE算子的复杂度是多少?

What is the complexity of the CUBE operator in SQL?

(大 O 表示法) 在 SQL (Microsoft) 或 Oracle 中的 CUBE 操作的复杂性是多少?

例如

SELECT x1, x2, SUM(x3)
FROM xyz
GROUP BY CUBE (x1, x2)

复杂度为:

2^c * n log(n)

其中:

c = number of columns in the cube
n = number of rows in the table

2^c 用于列的所有组合n log(n) 用于聚合运算符——通常相当于没有索引的排序。

因为 c 从来没有那么大——例如,10 会生成很多行——我们可以将其视为一个常量(在这种情况下为 1,000,000),并说操作本质上是 n log(n).