2016-07-20 7 views
0

MS Accessで実行されているクエリがあり、実行計画のノンクラスタースキャンでは、SSMSで100%のコストがかかります。このクエリには2回目の処理時間があります。これにより、これが実行されるときにアプリケーションの処理速度が低下します。このノンクラスタード・インデックスのコストを削減するために何ができるのか分かっているのですか?以下は、このテーブルを呼び出すクエリ、このテーブルのインデックスと実行計画です。ここでノンクラスタードインデックススキャンコストを削減する方法

SELECT "ContactID" ,"ContactName" FROM "dbo"."Contacts" 

実行計画:

enter image description here

答えて

6

はあなたのクエリはありませんがあります。ここではenter image description here

は、このスロークエリが参照しているテーブルにあるインデックスがありますWHERE句では、テーブル全体をスキャンしないようにする方法はありません。すべての行がretuであることを要求しているからです。

+0

新しいインデックスなどでこのプロセスを高速化する方法はありますか? @Joe Stefanelli – ETA

+1

@ETA:十分なRAMをSQL Serverに入れてテーブル全体をキャッシュし、SQL ServerとAccessクライアントアプリケーション間のLAN速度ができるだけ速くなるようにします。あるいは、テーブル全体ではなく実際に必要な行を照会するだけです。 – Heinzi

+0

@ETAあなたのお問い合わせは、すでに可能な限り最良のインデックスを使用しています。つまり、SELECT句にすべての列を含めることによって、問合せをカバーするものです。私の答えで述べたように、返される行の数を減らすためにWHERE節がなければ、これは得られるほど良好です。 –

関連する問題