SQL Server 2005のデータベースにインデックスを付けた場合、私はこの製品テーブル被覆インデックスヘルプは、主キー、外部キーがある場合...フィールドは、すでに個別
ProductID (PK)
ProductCategoryID (IX)
Description
Price
ExpiryDate
BreakableYN
のようなテーブルの多くを持つことになりますし、次に他のフィールドの束。このタイプのテーブルの別の特徴は、多くのクエリが2つのIDフィールド(ProductID、ProductCategoryID)のみを使用することである。 Employees JOIN EmployeeProductJoin JOIN Products JOIN ProductCategories JOIN ProductDepartments
。
ProductIDとProductCategoryIDがすでに索引付けされている場合、ProductID、ProductCategoryIDの別の索引を追加する価値はありますか?
私はそれがカバーインデックスを追加するのに役立ちます場合、私は求めているようだけど、私が本当に求めていると、その被覆インデックス内のフィールドは、すでに個別インデックス化されている場合は、カバーインデックスが役立つかどうかです。はい、それはかもしれないなど
Downvoted:この新しいインデックスは、クラスタ化されたものよりも多少(おそらく100倍)小さい場合があります。 –
アレックス、それは無関係です。すべてのノンクラスタード・インデックスには、クラスター化キーが含まれています。 PCIDの非クラスタ化インデックスにはPID + PCIDデータが含まれ、PID + PCIDの非クラスタ化インデックスにはPID + PCIDデータも含まれますが、PIDはインデックスキーと行ポインタにも複製されます。したがって、それは冗長です。 –
はい、プライマリキー(ProductID)はクラスタ化されています。私はあなたの反応を明確にしたいだけです。 ProductCategoryIDにインデックスを作成すると、そのインデックスはProductCategoryIDとProductIDで構成されます(ProductIDはクラスタ化インデックスなので)。だから、私は既にProductID、ProductCategoryIDのインデックスを持っています! –