실행 계획에 상당히 많은 병렬 테이블 스캔이 표시되므로 테이블 조회를 최적화하려고합니다. 표는 Opportunity
이고 필터링 대상 열은 Name
입니다.열 값이 'X'와 같지 않은 필터링 된 인덱스를 쓸 수 있습니까?
WHERE ([Name] NOT LIKE '%Supplement%');
나는이를 최적화 할 수있는 방법을 둘러보고 내가 필요한 인 필터링 된 인덱스를 건너 왔어요,하지만 한 돈 : 특히 나는 Name
의 일환으로 "보충"이없는 모든 행을 원하는 LIKE
키워드를 좋아하는 것 같습니다. 이와 같은 필터링 된 색인을 생성하는 다른 방법이 있습니까?
테이블에 ~ 53k 개의 행이 있으며 서버에 직접 쿼리 할 때 데이터를 가져 오는 데 4 초가 걸리지 만 연결된 서버 (필요한 경우)로 쿼리하면 2 분이 걸립니다. 이 시간을 개선하기 위해 스크립트에서 쿼리를 이동하여 연결된 서버와 통신하고 원격 서버에서 뷰를 만들었습니다. 아직도 영원히 걸립니다.
는 여기에 지금까지 시도했다, 그러나 SSMS는 무효 말한다 : 어떤 제안에 미리
CREATE NONCLUSTERED INDEX [FX_NotSupplementOpportunities]
ON [Opportunity]([Name])
WHERE (([Name] NOT LIKE '%Supplement%')
AND ([Name] NOT LIKE '%Suplement%')
AND ([Name] NOT LIKE '%Supplament%')
AND ([Name] NOT LIKE '%Suppliment%'));
감사합니다!
SQL Server의 필터링 된 인덱스 조건에서는 'LIKE'을 사용할 수 없습니다. –
다른 권장 사항이 있습니까? – Gup3rSuR4c