나는 두 개의 열이있는 테이블이 : 나는 또한 클러스터되지 않은 인덱스를 생성SQL 서버 두 개의 인덱스 컬럼은 다른 속도의 성능을
CREATE TABLE #history(
Today INT NOT NULL,
LastDay INT NOT NULL
PRIMARY KEY(Today, LastDay))
그러나
CREATE NONCLUSTERED INDEX #history_IX1 ON #history(LastDay)
을, 나는 열을 사용하여 테이블을 조인 할 때 오늘날 성능은 20 대 4와 같이 LastDay 열을 사용하는 것보다 훨씬 빠릅니다.
LastDay 열이 제대로 인덱싱되지 않아 문제가 발생한 것 같습니다. 또한 SQL 힌트를 사용하여 색인 생성을 강제 수행하므로 결과는 동일합니다. 이 문제에 대한
INSERT INTO anytable(
anycolumn)
SELECT m.anycolumn
FROM AMillionTable m
INNER JOIN #history h
ON h.Today = m.day
m.day also indexed.
Same query, when change h.Today to h.LastDay, the process speed significantly drops.
모든 솔루션 : 여기
은 예입니다?
자세한 정보를 찾을 수 있습니다. 힌트를 사용하면 SQL 엔진에 엔진보다 쿼리 최적화에 대해 더 많이 알 수 있습니다. 귀하의 질문은 명확하지 않지만, 기본 수준에서 꽤 깊은 잠수까지 색인을 생성하는 기사 모음에서 많은 정보를 얻을 수 있습니다. http://www.sqlservercentral.com/stairway/72399/ –
두 개의 쿼리에서 Explain 계획을 게시 할 수 있습니까? –
@PeterSmith 예제를 추가했습니다. 시나리오를 설명 할 수 있기를 바랍니다. –