T-SQLでの複数変数の割り当ての速度
-
06-07-2019 - |
質問
多くの変数が割り当てられたストアドプロシージャの上部に初期化コードのチャンクがあると想像してください。
SET @proc = 'sp_madeupname'
SET @magic_number = 42
SET @tomorrows_date = DATEADD(dd, 1, GETDATE())
...
上記のすべてを1つのSELECTとして実行すると、明らかに高速になります。
SELECT
@proc = 'sp_madeupname'
,@magic_number = 42
,@tomorrows_date = DATEADD(dd, 1, GETDATE())
...
しかし、どのくらい高速ですか?このストアドプロシージャがループの一部として数千回実行された場合、パフォーマンスに大きな違いが生じるでしょうか?
解決
他のヒント
考えたことはありますが、テストしたことはありません。
私の経験では、オプティマイザーはかなり良いので、違いはないと思いますが、本当に便利だと思ったらテストを実行します。
複数の割り当てを行うことは、常に一緒に行うべきことをカットアンドペーストまたはリファクタリングで分割しないようにする場合に、メンテナンスの観点から役立つと思います。
同じ理由で、比較的モジュール化されたコードは、個別の初期化の恩恵を受けることができます。これは、メンテナンス中にリファクタリングするためにより簡単にカットアンドペーストされるためです。
所属していません StackOverflow