假设我有以下 SQL 查询,涉及“AS ...”阶段的浮点运算。
SELECT
T1.A * T2.B * T1.D1 * T3.C AS A1
T1.A * T2.B * T1.D2 * T3.C AS A2
(...)
T1.A * T2.B * T1.D100 * T3.C AS A100
FROM TableName1 as T1
INNER JOIN TableName2 AS T2
LEFT JOIN TableName3 AS T3
其中 TableName 有 5.000.000 行,A、BC 和 D 是来自 A 的行,它们因行而异。2个问题:
1 - A * B * C会实际执行100 次吗?2 - 有没有办法将A * B * C运算分解为 2 次循环乘法只对一行的 100 列执行一次?
此外,我们可以认为“B”例如是一个复杂的函数调用 (SQRT(ARTCTAN(...(x))),因此每行只执行一次是合法的。