나는 직원 매김 직원의 이름으로 정렬 지원하기 위해 쿼리 아래가 매개 변수 rowNumAlias이 쿼리가 가진 내 SQL 서버 데이터베이스에 약 7 초 복용 한 100이 쿼리의 성능 튜닝?
사이의 모든 정수가 될 수
SELECT rowNumAlias
,Employee.employeeId
,Employee.NAME
FROM (
SELECT row_number() OVER (
ORDER BY Employee.NAME ASC
) rowNumAlias
,employeeId
,NAME
FROM Employee
) employeeData
INNER JOIN Employee ON Employee.employeeId = employeeData.employeeId
WHERE rowNumAlias BETWEEN ? AND ?
1 백만 레코드. 쿼리 실행 시간을 최소화 할 수있는 방법이 있습니까?
[실행 계획 수립] (http://stackoverflow.com/questions/7359702/how-do-i-obtain-a-query-execution-plan)이 필요합니다. 이것은 쿼리의 가장 느린 부분이 무엇인지 알려주고 심지어 쿼리 속도를 높이는 데 사용할 수있는 인덱스를 제안합니다. – Justin
어떤 버전의 SQL Server입니까? 2012 년 이후 + 페이지 매김을 수행하는 더 좋은 방법이 있습니다. 쿼리 실행 계획은 무엇입니까? 어쩌면 당신은 인덱스가 누락되었습니다 (예를 들어 Employee.name에서)? – jpw
pk/fk가 인덱싱된다고 가정하면 직원 이름 순서가 성능에 영향을 미칠 수 있습니다. 그래서 그것의 이름은 색인을 가지고 있습니까? (또는 사용 가능한 경우 SQL Server 2012의 더 나은 페이지 매김 구문 사용) –