0

みなさん、おはよう、

現在、SQL2005 / SSRS2005 で多値パラメーターを実装しようとしています。

多くのブログ/ウォークスルーで提案されている方法で、次のように式を使用してパラメーターをコンマで区切ってこれを行いました。

=Join(Parameters! <ParameterName> .Value,", ")

次に、関数を使用してパラメーターを分割します。

WHERE 
close_date BETWEEN @FROMCLOSEDATE AND @TOCLOSEDATE
AND (Group_ID IN (SELECT Val from dbo.fn_String_To_Table(@RESGROUP,',',1)))

これで期待どおりに動作するようになりました。ストアド プロシージャは、パラメータ と の間の日付を見つけるために 140 万行を検索していますIN RESGROUP。これには非常に長い時間がかかるため、インデックスを使用するのが最適です。私が収集したものから、テーブル値関数のため、インデックスは使用されません。

このシナリオでパフォーマンスを向上させるために他にできることはありますか?

4

1 に答える 1

0

関数からの戻り値を一時テーブルに挿入し、それをクエリで使用して、パフォーマンスを確認してください。

それ以外の場合は、動的クエリを試すことができます。

于 2012-09-26T06:53:36.913 に答える