0

ssms で実行するのに約 15 秒かかる SQL クエリがありますが、ssrs で実行すると 5 ~ 7 分かかります。私が読んだすべてのものから、これは「パラメータースニッフィング」によるものであるように見えるので、これをバイパスするためにクエリ内で変数を宣言しましたが、まだ複数のパラメーターで問題が発生しています。

私はこれを試しました: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/ee0e8b0c-44ae-4558-9b7e-d287dacfb8a5/multi-value-parameter-sniffing?forum=sqlreportingservices

と:

渡されたパラメータは次のとおりです: @Places

create table #places (place varchar(50))
insert into #places select Val from dbo.parseValues(@Places,',')

select * from mytable m
inner join #places p on p.place = m.place
drop table #places

これは、レポートの実行時に 1 つの場所のみを選択した場合に機能しますが、それ以外の場合は次のようなエラーがスローされます。

このエラーの詳細については、ローカル サーバー コンピューター上のレポート サーバーに移動するか、リモート エラーを有効にしてください -------------------------------- クエリデータセット 'dataset1' の実行に失敗しました。(rsErrorExecutingCommand) -------------------------------- レポートの処理中にエラーが発生しました。(rsProcessingAborted)

ParseValues 関数は、http://visakhm.blogspot.in/2010/02/parsing-delimited-string.html から取得されます

他のアイデアはありますか?

4

1 に答える 1