데이터베이스에 관심이 있고 SQL Server 2008을 사용하기 시작했습니다. 테이블의 적절한 인덱스를 사용하면 데이터베이스의 전반적인 성능을 향상시킬 수 있습니다.SQL Server 인덱스 성능
Customer Renters
CustomerID (PK) RentersID (PK)
ForeName (Non clustered index) StartDate
SurName EndDate
Email RentalNights
CustomerID (FK) (Non Clustered index)
I을 다음과 같이
나는 두 개의 테이블이 있고 자동 SQL 데이터 생성기를 사용하여 각 테이블에 1 개 백만 행을 생성은, 표 1은 고객 테이블과 표 2는 임대인의 테이블, 디자인은 가장 일반적으로 사용되는 열뿐 아니라 외래 키 열에 비 클러스터형 인덱스를 배치하면 성능을 향상시키는 데 도움이 될 것이라고 읽었습니다. 나는 인덱스를 사용하기 전에 인덱스를 사용하기 전에 간단한 조인 쿼리를 만들었지 만 인덱스를 사용할 때 향상된 성능을 보지 못했습니다. 어떤 시체가 나를 도울 수 있습니까? 아래의 이미지는 인덱스 이전 및 이후의 실행 계획입니다.
하기 전에 인덱스 : 인덱스 후
: 이
편집 : 이것은 내 인덱스 이 내가
SELECT cu.ForeName + ' ' + cu.SurName AS 'Name'
FROM dbo.Customers cu
INNER JOIN dbo.Renters re ON re.CustomerID = cu.CustomerID
WHERE cu.ForeName = 'Daniel'
편집 을 사용하고있는 SQL 구문입니다 구문을 사용하여 NES 아래의 회신에 게시에게 : 귀하의 요청을 바탕으로
이CREATE NONCLUSTERED INDEX [ix_Customer] ON [dbo].[Customers] ( [ForeName] ASC, [CustomerID] ASC ) INCLUDE ([SurName]) 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] GO
이러한 실행 계획을 이끌어 낼 수있는 ** SQL 쿼리 **도 표시 할 수 있습니까? –
인덱스 코드도 표시 하시겠습니까? – JNK
또한 인덱스를 사용하는 것처럼 보이지만 성능은 동일합니까? 두 쿼리를 실행하는 데 동일한 시간이 걸립니까? – JNK