は、図hereで行く:私は、列1および3SQL Serverのインデックス - 列の順序
に困惑している私は、データウェアハウスのテーブルに取り組んでいますし、あなたを取得するキーとして使用されている2つの列があります主キー
最初の列はソースシステムです。 3つの可能な値があります。IBM、SQL、ORACLEと言うことができます。次に、複合キーの第2の部分は、数値またはvarcharのできるトランザクションIDです。 3列目はありません。レコードがロードされるときにIdentity(1,1)によって生成される鍵となる秘密鍵以外。だから、下のグラフに私は、クエリ
Select a.Patient,
b.Source System,
b.TransactionID
from Patient A
right join Transactions B
on A.sourceSystem = B.sourceSystem and
a.transactionID = B.transactionID
where SourceSystem = "SQL"
に渡した場合、グラフは、インデックス内のカラム1がSourceSystemに設定されるべきであると考えるように私をリード想像してみてください。以来、すぐにドリルダウンして、次のレベルのインデックスに3分の1になります。しかし、このグラフを同僚に示すと、列1はトランザクションIDになり、列2はソースシステムとして解釈されます。
Colsは
1 2 3
-------------
| | 1 | |
| A |---| |
| | 2 | |
|---|---| |
| | | |
| | 1 | 9 |
| B | | |
| |---| |
| | 2 | |
| |---| |
| | 3 | |
|---|---| |
データベースの設計やパフォーマンスについて質問していますか? –
クエリは実行されません。あいまいな列名エラーが発生します。 –
質問は本当にです:私は最も選択的な列を最初または最後に置くべきですか(google that!)。それの多くは次のようなものです:Col1またはCol2を最も頻繁に使用するクエリはありますか?言い換えれば、他のクエリのインデックスはどのように再利用可能かです。 –