0

SalesOrderIdフィールドを主キーの一部として使用する実際の理由についてお聞きしたいと思います。これはテーブルへの外部キーのみであるべきだと思いますSalesOrderHeader

前もって感謝します

4

1 に答える 1

0

わかりましたインデックスについて少し 複数のタイプがあります。ディスク上のデータの物理的な順序を決定するクラスター化インデックスがあります。これがなければ、テーブルは技術的にヒープと呼ばれます。大量のデータへのアクセスは非効率的です。データはランダムです。クラスター化されていないインデックス (およびデータ分散に関する統計) は、クラスター化されたインデックスを参照してデータにアクセスします。インデックスが作成されると、クエリ オプティマイザーはインデックス付きの列を左から使用してデータを検索します。したがって、col1、col2、col3 というインデックスがある場合、col1 で結合、検索などを行うと、そのインデックスが使用されます。col1、col2 でフィルタリングする場合、同じインデックスが使用されます。これに対するペナルティはほとんどまたはまったくありません。クエリが col1、col2、col3 のみ (where や返された列などを含む) 返される情報は、インデックスを読み取るだけで確認できます。テーブル自体にアクセスする必要はありません。これは、カバリング インデックスとして知られています。だから、これは非常に速いです。一般に、テーブルは狭く、インデックスは広くする必要があります。もっと詳しく知りたい方はこちらをお勧めしますhttp://www.insidesqlserver.com/thebooks.html Kalen Delany: 彼女は SQL 開発チームを個人的に知っており、非常に明確に書いています。基本原則は、SQL7 から SQL2012 まで引き続き当てはまりますが、スパース インデックス、空間データ型、BI、その他多くの機能が追加されています。

于 2012-08-15T16:53:35.750 に答える