2016-07-20 2 views
0

MS Access에서 실행되는 쿼리가 있고 실행 계획의 비 클러스터형 스캔의 비용이 SSMS에서 100 %입니다. 이 쿼리는 두 번째 highes 처리 시간을 가지며, 이는 실행될 때 애플리케이션 속도를 감소 시킨다는 것을 의미합니다. 이 클러스터되지 않은 인덱스의 비용을 줄이기 위해 내가 뭘 할 수 있는지 아는 사람이 있는지 궁금합니다. 아래는이 테이블을 호출하는 쿼리,이 테이블에 대해 인덱싱 된 쿼리 및 실행 계획입니다. 여기클러스터되지 않은 인덱스 스캔 비용을 줄이는 방법

SELECT "ContactID" ,"ContactName" FROM "dbo"."Contacts" 

실행 계획 :

enter image description here

답변

6

당신의 쿼리가 더있다 : 여기 enter image description here

이 느린 쿼리가 참조하고있는 테이블에있는 인덱스는 WHERE 절은 전체 테이블을 스캔하는 것을 피할 수있는 방법이 없습니다. 모든 행이 retu 일 것을 요구하기 때문에 준비.

+0

새로운 인덱스 등으로이 프로세스를 더 빨리 처리 할 수 ​​있습니까? @Joe Stefanelli – ETA

+1

@ETA : 전체 테이블을 캐시하고 SQL Server와 Access 클라이언트 응용 프로그램 간의 LAN 속도가 가능한 한 빠르도록 SQL Server에 충분한 RAM을 두십시오. 또는 전체 테이블 대신 * 실제로 필요한 행을 쿼리하면됩니다. – Heinzi

+0

@ETA 귀하의 질의는 이미 가능한 최상의 색인을 사용하고 있습니다. 즉, SELECT 절의 모든 C 럼을 포함하여 조회를 처리하는 것입니다. 내 대답에 언급 한 바와 같이 WHERE 절이 반환되는 행 수를 줄이지 않고도 얻을 수있는만큼 좋습니다. –

관련 문제