우리는 작업을 통해 성능 문제를 경험 한 나는 다행히 속도 저하의 원인이 쿼리를 찾을 수는 ..SQL Server 쿼리 perfomance에 의해 그룹과 튜닝 및 가입 조항
select name from Student a, Student_Temp b
where a.id = b.id and
a.name in (select name from Student
group by name having count(*) = @sno)
group by a.name having count(*) = @sno
OPTION (MERGE JOIN, LOOP JOIN)
이 특정 쿼리를 반복적으로 여러 번 둔화라고 성능을 낮추십시오.
Student
테이블에는 8 백만 개의 레코드가 있고 Student_temp
은 매번 반복 프로세스에서 5-20 레코드를받습니다. Student
테이블에 복합 기본 키가 있습니다 (id
및 name
) 및 sno
= Student_Temp
에 레코드가 없습니다.
제 질문은 아래에 있습니다 : 1) 왜이 쿼리는 성능 문제를 표시합니까? 2) 여러분은이 작품을 더 효과적으로 쓸 수 있습니까?
미리 감사드립니다.
당신도 확실하지가 필요 "및 a.name (이름을 가진 COUNT (*) = @sno에 의해 학생 그룹의 이름을 선택)에"일부 내 생각 – athabaska
이동 당신은 내부 조인을 사용할 수 있습니다 : 학생 이름 선택 INNER JOIN Student_Temp b ON a.id = b.id ... – PeterRing
하위 쿼리는 의미가 없습니다. – KumarHarsh