1

このようなテーブルがあるとしましょう。Id は主キーであるため、そのインデックスを取得できます。

CREATE TABLE Employer
(
    Id VARCHAR(64) NOT NULL,
    EntityId VARCHAR(64) NOT NULL,
    Name VARCHAR(64) NOT NULL,
    Address1 VARCHAR(64) NOT NULL,
    Address2 VARCHAR(64) NOT NULL,
    City VARCHAR(64) NOT NULL,
    JobTitle VARCHAR(64) NOT NULL,
    StateCode VARCHAR(64) NOT NULL,
    ZipCode VARCHAR(64) NOT NULL,
    CONSTRAINT PK_Employer_Id PRIMARY KEY CLUSTERED (Id ASC)
    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)

特別な検索に役立つ別のインデックスを追加するとしましょう (理由はあまり関係ありませんが)。Id (主キー) をインデックスの列の 1 つとして含める理由はありますか? インデックスには何らかの方法で主キーが既に含まれているため、これはスペースの無駄であると SQL の専門家に言われました。

CREATE INDEX [idxEmployerByNameAddress1City] on [Employer] ([EntityId], [Id], [Name], [Address1], [City])
4

2 に答える 2

0

セカンダリ インデックスが主キー列で始まらない場合、主キーはセカンダリ インデックスとは無関係です。

一方、インデックスが最初の 2 つの列に基づいて一意である場合は、ここにあるように見えますが、キーに列を追加しても意味がありません。これは、インデックス内のスペースを浪費するだけです。

于 2013-06-21T17:07:18.723 に答える