표 Props
에는 이미 'CreatedOn'열에 non-clustered index
이 있지만이 인덱스는 크게 개선하지 않기 위해 필요한 다른 특정 열은 include
입니다. 자주 실행되는 쿼리의 쿼리 성능.기존 비 클러스터형 인덱스에 열을 포함하거나 클러스터되지 않은 인덱스를 새로 추가하십시오.
이 문제를 해결하는 것이 가장 좋습니다.
-
1.
은 추가 비 클러스터에 포함 된 열이있는 인덱스 또는
-
2. 포함 된 열로 다른 열을 추가 할 수있는 기존의 인덱스를 변경을 만들? 또한
:
-
- 어떻게 내 결정은 현재 클러스터되지 않은 인덱스를 사용하는 다른 쿼리의 성능에 영향을 미칠 것인가?
-
- 포함 된 열을 추가하기 위해 기존 색인을 삭제하고 다시 만들거나 변경해야하는 경우 가장 좋으면 어떻게해야합니까?
CREATE TABLE dbo.Props(
PropID int NOT NULL,
Reference nchar(10) NULL,
CustomerID int NULL,
SecondCustomerID int NULL,
PropStatus smallint NOT NULL,
StatusLastChanged datetime NULL,
PropType smallint NULL,
CreatedOn datetime NULL,
CreatedBy int NULL
CONSTRAINT PK_Props PRIMARY KEY CLUSTERED
(
PropID ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
GO
현재 인덱스
:테이블의 단순화 된 버전은 문제의 인덱스와 함께 아래에있는 신규 또는 변경 인덱스에 필요한 열
CREATE NONCLUSTERED INDEX idx_CreatedOn ON dbo.Props
(
CreatedOn ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
GO
모든 5가; foreign key
열, smallint 및 int, nullable 및 nullable의 혼합.
예에서 include
의 열은 CustomerID, SecondCustomerID, PropStatus, PropType 및 CreatedBy입니다. 언제나처럼 ... 그것은 달려