2017-08-30 19 views
0

JOINとUNIONで複雑な選択があり、時間がかかるので、簡単な選択でテストすることにしましたが、この選択にはまだ時間がかかります。私は、コードはシンプルセレクトの実行に時間がかかります

SELECT pchrgqty,pchrgup,pcchrgamt FROM 
hdocord 
WHERE acctno = '2014-000136557' 

である。しかし、これはより高速にするためにどのよう

を実行するために1分11秒かかり、実行計画にhere

を保存していますか? なぜそれは非常に遅いですか?

+1

テーブル全体をスキャンしています。それがシークできるように、 'acctno'にインデックスを作成します。 (また、このテーブルの設計者に、SQL Serverが名前に最大128文字をサポートしていることを伝えることを検討してください。何らかのレガシーシステムとの互換性がない限り、読めない名前のための言い訳はありません) –

+0

@JeroenMostert iデータベースにアクセスすることはできません。私は 'acctno'のインデックスを追加する方法を尋ねますか?私はそれを追加しようとすることができますように。あなたは答えとしてそれを与えることができます – Martin

答えて

1

あなたは、このSQL文を実行している欠けているインデックスを追加しようとすることができます:

CREATE NONCLUSTERED INDEX ix_hdocord_acctno ON hdocord 
(
    acctno ASC 
) 
ON [PRIMARY] 

、彼らはあなたに十分な権限を与えられていない場合、それは失敗します。

関連する問題