計算列内で使用する関数DiffMinutiがあります。変数として宣言して、1回だけ呼び出してコードを最適化したいと思います。あなたのお手伝いをありがとう:SQL Server:関数を計算列内で変数として宣言する方法
ALTER TABLE Ticket ADD MinutiAllaScadenza AS (" +
CASE
WHEN StatoTicketID > 3 AND dbo.DiffMinuti(DataArrivo, DataObiettivo) <0 THEN 10000000
ELSE dbo.DiffMinuti(DataArrivo, DataObiettivo)
END)
ありがとう! よろしく
@domanagerを表現をラップする必要があると思います。ありがとうございました! 私はそれがとても複雑だとは思わなかった...「MinutiAllaScadenza」計算フィールドを計算する最も効率的な方法は何だと思いますか? 「Diffminuti」関数をダブルコールして、あなたが記述したものか、現在私が使っているものか? ありがとう、あなたは非常に徹底的で専門的です! – Larry
@Larry大量の挿入/更新が多数あり、メソッドのテーブルからの読み込みがほとんどない方が良いが、データがかなり静的で照会されている場合は、テーブルの使用方法によります多くの場合、返される各行の関数を呼び出す必要がなくなり、より効率的になります。 – domager
@domager:悪いケースでDiffMinutiのテーブルへの2次書き込みの最上部に残っている計算カラムのRBAR処理があります... – gbn