私は次の声明を継承しました。
SELECT ISNULL((SELECT (-1)*SUM(CAST(ISNULL(NULLIF(TOTALMTDLCY,''),0) AS DECIMAL(20,5)))
FROM TI),0)
何をしようとしているのかはわかっていますが(null値を防ぎ、0を返す)、これを行うにはもっとパフォーマンスの高い方法が必要だと思いますか?
その理由は、このステートメントを 12 回使用して、40,000 人の顧客 (480,000) の異なるテーブルから値を取得し、それぞれに 3 つのレコード (1.5M) を挿入する sproc があるためです。
これが完了するまでに約 13 分かかります。プロセスに関するいくつかの簡単な統計を収集して合計すると、12 のステートメントにかかった実際の時間は 00:00.015 ですが、合計時間は約 10 分であることがわかります。
ですから、このプロセスを高速化できれば、sproc を高速化できると思いますか?