여러 열에서 DISTINCT 값을 효율적으로 계산
여러 열에서 고유한 조합의 개수를 확인해야 하는 시나리오에서 공통적인 접근 방식은 DISTINCT 절과 함께 하위 쿼리를 활용하는 것입니다. 그러나 이 기술은 때로는 비효율적일 수 있습니다. 여기서는 잠재적인 최적화 방법을 살펴보겠습니다.
제공된 쿼리는 "DocumentOutputItems" 테이블에서 고유한 "DocumentId" 및 "DocumentSessionId" 조합을 계산하는 것을 목표로 합니다.
SELECT COUNT(*) FROM (SELECT DISTINCT DocumentId, DocumentSessionId FROM DocumentOutputItems) AS internalQuery
성능을 향상하려면 해시 또는 해당 열의 연결된 조합을 기반으로 지속형 계산 열을 생성하는 것을 고려해 보세요. 일단 생성되면 이 열은 적절한 데이터베이스 설정을 가정하여 인덱싱되고 이와 관련된 통계를 가질 수 있습니다.
이 지속형 계산 열을 활용하면 파생 필드에 대한 DISTINCT 계산 작업이 원래 쿼리와 동일한 결과를 산출해야 합니다. . 이 접근 방식을 사용하면 하위 쿼리가 필요하지 않으며 잠재적으로 효율성이 향상됩니다. 예는 다음과 같습니다.
ALTER TABLE DocumentOutputItems ADD DocumentUniqueIndex AS HASHBYTES('MD5', DocumentId + DocumentSessionId) PERSISTED; SELECT COUNT(DISTINCT DocumentUniqueIndex) FROM DocumentOutputItems;
위 내용은 SQL의 여러 열에 걸쳐 고유한 조합을 효율적으로 계산하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!