1

paymentdetails列のあるテーブルがありますpaymentstatus(値を有料または保留のいずれかに制限するチェック制約があります)。また、patientdetailspatientid、address......列を保持するテーブル

最初の支払いが保留されている各患者の患者の詳細を抽出する実行を高速化するインデックスを作成したいと思います。

4

1 に答える 1

2

最初にクエリを書きます。クエリが気にするものを見てください。

結合に関係するすべてのキー、where 句内のキー、およびおそらく結果セットに最も多くの情報を提供するテーブルの主キー (おそらくINCLUDE、結果セット内の他の列を利用可能にするために使用) にインデックスが必要です。テーブルにぶつかることなく)。

「フィルター処理されたインデックス」(部分的なインデックスに対する SQLServer の用語、理由は不明) が適していますが、SQLServer には 2008 年以降、これらしかありませんでした。

ただし、前者は理論であり、後者は 2008 を使い始めるまで知っておくと便利なことです。クエリがどのように実行されるかを実際に調べるのは実際のことです。

また、インデックスが他の SELECT と、UPDATE と DELETE の WHERE 部分を高速化するという事実についても考えてみてください。したがって、どこにでもインデックスを配置することに夢中になる必要はありませんが、他のクエリで使用される可能性が最も高いインデックスに特に注意を払う必要があります。

于 2012-08-27T00:17:47.640 に答える