SQLの更新ステートメントのパフォーマンスに関する簡単な質問です。 テーブルに100万行あると仮定し、それらの半分の日付列を更新したいとします。SQL Updateのパフォーマンス
は、機能Date.dbo.fn_GetAlwaysUTCDate()
は500K回呼び出されます私の更新は上記のクエリで
UPDATE Table SET DATE = Date.dbo.fn_GetAlwaysUTCDate() WHERE (HALF THE ROWS)
されますか? WHERE
であれば、コンパイラ/オプティマイザの目では決定的な関数ではないので、各行で呼び出されることは分かっています。
UDFは事前評価されていません(折りたたまれている)ので、外部行セットのすべての行に対して実行する必要があります。その動作を一度呼び出すと、その戻り値を変数に格納します。 –
それは私がやっていることです、私はちょうどそれが価値があることを100%確信していませんでした! –