|
分類:[データベース全般]
SQL Server にアクセスするクエリにて速度が遅くなる理由が不明で困っております。 利用状況モニターでクエリを確認すると、下記の様なイメージのクエリになっております。 (列名などは仮です)
SELECT SUM(A) AS ASUM FROM Aデータ WHERE ADATE BETWEEN @P1 AND @P2 AND ACODE = @P3 AND BCODE = @P4 AND CCODE IN(@P5,@P6,@P7,@P8,@P9,@P10)
何度か通る処理の途中で上記のクエリが走るのですが、パラメーターを利用せずに、毎回固定値をクエリ内に指定してOpenする方が トータルの処理がかなり早いです。 毎回変更される固定値を指定すると、アドホッククエリになるかと思いますが、何故か上記クエリで行うよりもトータルで高速です。
また、利用状況モニター上の上記クエリのプラン数が50などになっており、キャッシュから処理されていないような気もします。
全体の作りを変えるべきという話はおいといていただいて、何かアドバイスあれば教えてください。
|