로 정의 상당히 높은 트래픽 테이블의 최근 검토는 다음과 같습니다이 색인은 중복되어 있습니까?
CREATE NONCLUSTERED INDEX [i1] ON [dbo].[SomeTable]
(
[SomeId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
- 및 -
CREATE NONCLUSTERED INDEX [i2] ON [dbo].[SomeTable]
(
[SomeId] ASC,
[OtherId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
이 지역은되지 않습니다 :
CREATE TABLE [dbo].[SomeTable](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[SomeId] [bigint] NOT NULL,
[Time] [time](0) NOT NULL,
[InsertTime] [datetime] NOT NULL,
[SequenceNumber] [int] NOT NULL,
[OtherId] [int] NULL,
CONSTRAINT [PK_Tracks] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
는 다음 인덱스 정의를 보여 정말 내 힘,하지만 인덱스 i1
불필요한가요?
클러스터 된 인덱스 키와 데이터 유형을 포함하는 테이블 정의? 첫 번째 것은 조금 더 좁기 때문에'OtherId'가 매우 넓 으면 선호 될 수 있습니다. 다른 방법으로는 'OtherId'가 CI 키의 일부라면 어쨌든 첫 번째 NCI 키의 숨겨진 부분이기도합니다. –
나에게 불필요 해 보인다.'[SomeId]'는'[i2]'의 선두 칼럼이며'[i1]'과 같은 쿼리에 효과적으로 사용될 수있다. – a1ex07
@MartinSmith : done – spender