「AS ...」ステージでの浮動小数点演算を含む、次の SQL クエリがあるとします。
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 -行の 100 列に対して 1 回だけ実行される 2 つの反復乗算のA * B * C演算を因数分解する方法はありますか?
また、「B」はたとえば複雑な関数呼び出し (SQRT(ARTCTAN(...(x))) であると考えることができるため、行ごとに 1 回だけ実行する正当性があります。