많은 수의 행이있는 SQL Server 2014의 테이블이 있습니다. TableA라고 부르 자.SQL Server 큰 테이블을 쿼리하는 가장 효율적인 방법은 거의 완전한 결과 집합
나는 거의 모든 행 (행 97 %의 말을하자)에 대한 자사의 PK (AN AUTOINCREMENT ID 클러스터 된 KEY)를 쿼리해야하고이 결과 집합은 일반적으로 다른 테이블 (TableB의)를 통해 함께 참여한다 외래 키 (FK_A라고 부르 자). 문제는 TableA
가 LowSparseColumn = 100
와 행의 97 %를 갖는다는 것이다
SELECT
TableB.someColumnNotFKNorPK
FROM
TableB
INNER JOIN
TableA ON TableB.FK_A = TableA.ID
WHERE
TableA.LowSparseColumn = 100
SQL 서버 부분 결과
에게 숨길 필요가 있기 때문에 스풀 등을 행하기 때문에이 수율 : 같이쿼리 보인다
그 문제를 어떻게 처리해야하는지 알고 있습니까?
도움이 정말 감사합니다!
감사합니다.
아마도'LowSparseColumn = 100'에 [필터링 된 색인 생성] (https://docs.microsoft.com/en-us/sql/relational-databases/indexes/create-filtered-indexes)을 작성했을 것입니다. –
나는 필터링 된 인덱스가 97 %의 행을 충족하는 데 도움이 될 것이라고 생각하지 않습니다. 필터링 된 인덱스를 만드는 주요 고려 사항 중 하나는 관련 레코드가 최소화되어야합니다. LowSparseColumn에서 단순한 비 클러스터형 인덱스가 속도를 향상시킬 수 있습니다. –