다음을 통해 공유


SQL 데이터베이스의 인텔리전트 쿼리 처리

적용 대상: Microsoft Fabric의 SQL ServerAzure SQL Database Azure SQL Managed InstanceSQL 데이터베이스

IQP(지능형 쿼리 처리) 기능 제품군에는 도입을 위한 최소한의 구현 노력으로 기존 워크로드의 성능을 개선하는 광범위한 효과를 제공하는 기능이 포함됩니다. 다음 그래픽에서는 IQP 기능 제품군과 SQL Server에 처음 도입된 시기를 자세히 설명합니다. 모든 IQP 기능은 Azure SQL Managed Instance 및Azure SQL 데이터베이스에서 사용 가능합니다. 일부 기능은 데이터베이스의 호환성 수준에 따라 달라집니다.

지능형 쿼리 처리 기능 제품군 및 해당 기능이 SQL Server에 처음 도입된 시기의 다이어그램.

이 동영상을 보고 지능형 쿼리 처리에 대한 개요를 확인하세요.

 

GitHub의 IQP(지능형 쿼리 처리) 기능의 데모 및 샘플 코드는 https://aka.ms/IQPDemos을 참조하세요.

데이터베이스에 대해 적용 가능한 데이터베이스 호환성 수준을 사용하도록 설정하여 워크로드가 지능형 쿼리 처리에 자동으로 적합하도록 만들 수 있습니다. Transact-SQL을 사용하여 설정할 수 있습니다. 예시:

ALTER DATABASE [WideWorldImportersDW] SET COMPATIBILITY_LEVEL = 160;

다음 표에서는 모든 지능형 쿼리 처리 기능과 데이터베이스 호환성 수준에 대한 요구 사항을 자세히 설명합니다. 릴리스 정보 및 자세한 설명을 포함하여 모든 IQP 기능에 대한 자세한 내용은 지능형 쿼리 처리 기능을 자세히 참조하세요.

Azure SQL Database 및 SQL Server 2025 미리 보기용 IQP 기능

IQP 기능 Azure SQL Database에서 지원 SQL Server 2025(17.x) 미리 보기에서 지원됨 설명
최적화된 할로윈 보호 아니요 예, 호환성 수준이 170인 SQL Server 2025(17.x) 미리 보기부터 tempdb 할로윈 보호를 위해 스풀을 사용하지 않음으로써 공간 소비를 줄이고 쿼리 성능을 향상시킵니다.
OPPO(선택적 매개 변수 계획 최적화) 아니요 예, 호환성 수준이 170인 SQL Server 2025(17.x) 미리 보기부터 단일 문에서 여러 계획을 생성하는 PSPO(매개 변수 중요 계획 최적화) 개선과 함께 도입된 적응 계획 최적화(Multiplan) 인프라를 활용합니다. 이 기능은 매개 변수 NULL OR NOT NULL가 있는지 여부에 따라 런타임에 더 최적의 계획을 선택할 수 있습니다. 이렇게 하면 이러한 쿼리 패턴에 대한 최적이 아닌 성능으로 기본값이 될 수 있는 쿼리의 성능이 향상됩니다.
식에 대한 CE(카디널리티 추정) 피드백 아니요 예, 호환성 수준이 160인 SQL Server 2025(17.x) 미리 보기부터 이전 실행에서 학습하고 해당 식의 향후 실행에 적절한 CE 모델 선택을 자동으로 적용하여 쿼리 간에 식을 반복하기 위한 카디널리티 예상치를 개선하기 위해 CE 피드백을 확장합니다.
OPTIMIZED_SP_EXECUTESQL 예, SQL Server 2025(17.x) 미리 보기부터 컴파일 폭풍의 영향을 효과적으로 줄입니다. 컴파일 폭풍은 많은 수의 쿼리가 동시에 컴파일되어 성능 문제 및 리소스 경합을 초래하는 상황을 나타냅니다. 이 기능을 사용하면 호출이 sp_executesql 컴파일 관점에서 저장 프로시저 및 트리거와 같은 개체처럼 동작할 수 있습니다.

Azure SQL Database 및 SQL Server 2022용 IQP 기능

IQP 기능 Azure SQL Database에서 지원 SQL Server 2022(16.x)에서 지원 설명
적응 조인(일괄 처리 모드) 예, 데이터베이스 호환성 수준 140부터 예, 데이터베이스 호환성 수준 140에서 SQL Server 2017(14.x)부터 적응형 조인은 실제 입력 행을 기준으로 런타임 중에 조인 형식을 동적으로 선택합니다.
대략적인 고유 개수 예, SQL Server 2019(15.x)부터 고성능 및 낮은 메모리 공간의 이점을 통해 빅 데이터 시나리오에 대한 대략 COUNT DISTINCT 적인 정보를 제공합니다.
대략적인 백분위수 예, 데이터베이스 호환성 수준 110부터 예, SQL Server 2022(16.x)에서 호환성 수준 110부터 대략적인 백분위수 집계 함수를 사용하여 신속한 의사 결정을 내릴 수 있도록 허용 가능한 순위 기반 오류 범위가 있는 대규모 데이터 세트에 대한 백분위수를 빠르게 계산합니다.
Rowstore의 일괄 처리 모드 예, 데이터베이스 호환성 수준 150부터 예, SQL Server 2019(15.x)에서 호환성 수준 150부터 columnstore 인덱스를 요구하지 않고 CPU 바인딩 관계형 DW 워크로드에 대한 일괄 처리 모드를 제공합니다.
CE(카디널리티 추정) 피드백 예, 데이터베이스 호환성 수준 160부터 예, SQL Server 2022(16.x)에서 호환성 수준 160부터 비효율적인 CE 가정으로 인해 쿼리 성능이 저하되는 워크로드를 최적화하기 위해 반복 쿼리에 대한 카디널리티 예측값을 자동으로 조정합니다. CE 피드백은 지정된 쿼리 및 데이터 배포에 더 잘 맞는 모델 가정을 식별하고 사용하여 쿼리 실행 계획 품질을 개선합니다.
DOP(병렬 처리 수준) 피드백 예, 미리보기에서 데이터베이스 호환성 수준 160부터 예, SQL Server 2022(16.x)에서 호환성 수준 160부터 비효율적인 병렬 처리로 인해 성능 문제가 발생할 수 있는 워크로드를 최적화하기 위해 쿼리 반복에 대한 병렬 처리 수준을 자동으로 조정합니다. 쿼리 저장소를 사용하도록 설정해야 합니다.
인터리브 실행 예, 데이터베이스 호환성 수준 140부터 예, 데이터베이스 호환성 수준 140에서 SQL Server 2017(14.x)부터 고정 추측 대신 첫 번째 컴파일에서 발생한 다중 문 테이블 반환 함수의 실제 카디널리티를 사용합니다.
메모리 부여 피드백(일괄 처리 모드) 예, 데이터베이스 호환성 수준 140부터 예, 데이터베이스 호환성 수준 140에서 SQL Server 2017(14.x)부터 일괄 처리 모드 쿼리에 디스크로 분산되는 작업이 있는 경우 연속 실행을 위해 메모리를 추가합니다. 쿼리가 할당된 메모리의 > 50%를 낭비하는 경우 연속 실행을 위한 메모리 부여 크기를 줄입니다.
메모리 부여 피드백(행 모드) 예, 데이터베이스 호환성 수준 150부터 예, 데이터베이스 호환성 수준 150에서 SQL Server 2019(15.x)부터 행 모드 쿼리에 디스크로 분산되는 작업이 있는 경우 연속 실행을 위해 메모리를 추가합니다. 쿼리가 할당된 메모리의 > 50%를 낭비하는 경우 연속 실행을 위한 메모리 부여 크기를 줄입니다.
메모리 부여 피드백(백분위수) 예, 모든 데이터베이스에서 사용하도록 설정 예, SQL Server 2022(16.x)에서 데이터베이스 호환성 수준 140부터 이전 쿼리 실행을 통합하여 피드백을 구체화하고 비침해적 방식으로 메모리 부여 피드백의 기존 제한 사항을 해결합니다.
메모리 부여 피드백 지속성 예, 모든 데이터베이스에서 사용하도록 설정 예, SQL Server 2022(16.x)에서 데이터베이스 호환성 수준 140부터 메모리 부여 피드백을 유지하는 새로운 기능을 제공합니다. 데이터베이스 및 READ_WRITE 모드에서 쿼리 저장소를 사용하도록 설정해야 합니다.
CE 피드백 지속성 예, 데이터베이스 호환성 수준 160부터 예, SQL Server 2022(16.x)에서 데이터베이스 호환성 수준 160부터 데이터베이스 및 READ_WRITE 모드에서 쿼리 저장소를 사용하도록 설정해야 합니다.
DOP 피드백 지속성 예, 미리보기에서 데이터베이스 호환성 수준 160부터 예, SQL Server 2022(16.x)에서 데이터베이스 호환성 수준 160부터 데이터베이스 및 READ_WRITE 모드에서 쿼리 저장소를 사용하도록 설정해야 합니다.
쿼리 저장소를 사용하여 최적화된 계획 강제 실행 예, SQL Server 2022(16.x)부터. 강제 쿼리를 반복하기 위한 컴파일 오버헤드를 줄입니다. 자세한 내용은 쿼리 저장소에 최적화된 계획 강제 적용을 참조하세요.
스칼라 UDF 인라인 처리 예, 데이터베이스 호환성 수준 150부터 예, 데이터베이스 호환성 수준 150에서 SQL Server 2019(15.x)부터 스칼라 UDF는 호출 쿼리로 "인라인"되는 해당 관계형 식으로 변환되어 성능이 크게 향상됩니다.
매개 변수 중요한 계획 최적화 예, 데이터베이스 호환성 수준 160부터 예, 데이터베이스 호환성 수준 160에서 SQL Server 2022(16.x)부터 매개 변수 중요한 계획 최적화는 매개 변수가 있는 쿼리에 대해 캐시된 단일 계획이 들어오는 모든 매개 변수 값(예: 균일하지 않은 데이터 배포)에 최적이 아닌 시나리오를 해결합니다.
테이블 변수 지연 컴파일 예, 데이터베이스 호환성 수준 150부터 예, 데이터베이스 호환성 수준 150에서 SQL Server 2019(15.x)부터 고정 추측 대신 첫 번째 컴파일에서 발생한 테이블 변수의 실제 카디널리티를 사용합니다.

Azure SQL Managed Instance용 IQP 기능

IQP 기능 Azure SQL Managed Instance에서 지원 설명
적응 조인(일괄 처리 모드) 예, 데이터베이스 호환성 수준 140부터 적응형 조인은 실제 입력 행을 기준으로 런타임 중에 조인 형식을 동적으로 선택합니다.
대략적인 고유 개수 고성능 및 낮은 메모리 공간의 이점을 통해 빅 데이터 시나리오에 대한 대략 COUNT DISTINCT 적인 정보를 제공합니다.
대략적인 백분위수 예, 데이터베이스 호환성 수준 110부터 대략적인 백분위수 집계 함수를 사용하여 신속한 의사 결정을 내릴 수 있도록 허용 가능한 순위 기반 오류 범위가 있는 대규모 데이터 세트에 대한 백분위수를 빠르게 계산합니다.
Rowstore의 일괄 처리 모드 예, 데이터베이스 호환성 수준 150부터 columnstore 인덱스를 요구하지 않고 CPU 바인딩 관계형 DW 워크로드에 대한 일괄 처리 모드를 제공합니다.
CE(카디널리티 추정) 피드백 예, 데이터베이스 호환성 수준 160부터 비효율적인 CE 가정으로 인해 쿼리 성능이 저하되는 워크로드를 최적화하기 위해 반복 쿼리에 대한 카디널리티 예측값을 자동으로 조정합니다. CE 피드백은 지정된 쿼리 및 데이터 배포에 더 잘 맞는 모델 가정을 식별하고 사용하여 쿼리 실행 계획 품질을 개선합니다.
DOP(병렬 처리 수준) 피드백 아님 비효율적인 병렬 처리로 인해 성능 문제가 발생할 수 있는 워크로드를 최적화하기 위해 쿼리 반복에 대한 병렬 처리 수준을 자동으로 조정합니다. 쿼리 저장소를 사용하도록 설정해야 합니다.
인터리브 실행 예, 데이터베이스 호환성 수준 140부터 고정 추측 대신 첫 번째 컴파일에서 발생한 다중 문 테이블 반환 함수의 실제 카디널리티를 사용합니다.
메모리 부여 피드백(일괄 처리 모드) 예, 데이터베이스 호환성 수준 140부터 일괄 처리 모드 쿼리에 디스크로 분산되는 작업이 있는 경우 연속 실행을 위해 메모리를 추가합니다. 쿼리가 할당된 메모리의 > 50%를 낭비하는 경우 연속 실행을 위한 메모리 부여 크기를 줄입니다.
메모리 부여 피드백(행 모드) 예, 데이터베이스 호환성 수준 150부터 행 모드 쿼리에 디스크로 분산되는 작업이 있는 경우 연속 실행을 위해 메모리를 추가합니다. 쿼리가 할당된 메모리의 > 50%를 낭비하는 경우 연속 실행을 위한 메모리 부여 크기를 줄입니다.
메모리 부여 피드백(백분위수) 예, 데이터베이스 호환성 수준 160부터 이전 쿼리 실행을 통합하여 피드백을 구체화하고 비침해적 방식으로 메모리 부여 피드백의 기존 제한 사항을 해결합니다.
메모리 부여, CE, DOP 피드백 지속성 예, 데이터베이스 호환성 수준 160부터 메모리 부여 피드백을 유지하는 새로운 기능을 제공합니다. CE 및 DOP 피드백은 항상 유지됩니다. 데이터베이스 및 READ_WRITE 모드에서 쿼리 저장소를 사용하도록 설정해야 합니다.
쿼리 저장소를 사용하여 최적화된 계획 강제 실행 아님 강제 쿼리를 반복하기 위한 컴파일 오버헤드를 줄입니다. 자세한 내용은 쿼리 저장소에 최적화된 계획 강제 적용을 참조하세요.
스칼라 UDF 인라인 처리 예, 데이터베이스 호환성 수준 150부터 스칼라 UDF는 호출 쿼리로 "인라인"되는 해당 관계형 식으로 변환되어 성능이 크게 향상됩니다.
매개 변수 중요한 계획 최적화 예, 데이터베이스 호환성 수준 160부터 매개 변수 민감도 계획 최적화는 매개 변수가 있는 쿼리에 대해 캐시된 단일 계획이 들어오는 모든 매개 변수 값(예: 균일하지 않은 데이터 배포)에 최적이 아닌 시나리오를 해결합니다.
테이블 변수 지연 컴파일 예, 데이터베이스 호환성 수준 150부터 고정 추측 대신 첫 번째 컴파일에서 발생한 테이블 변수의 실제 카디널리티를 사용합니다.

SQL Server 2019용 IQP 기능

IQP 기능 SQL Server 2019(15.x)에서 지원 설명
적응 조인(일괄 처리 모드) 예, 데이터베이스 호환성 수준 140에서 SQL Server 2017(14.x)부터 적응형 조인은 실제 입력 행을 기준으로 런타임 중에 조인 형식을 동적으로 선택합니다.
대략적인 고유 개수 고성능 및 낮은 메모리 공간의 이점을 통해 빅 데이터 시나리오에 대한 대략 COUNT DISTINCT 적인 정보를 제공합니다.
Rowstore의 일괄 처리 모드 예, 데이터베이스 호환성 수준 150부터 columnstore 인덱스를 요구하지 않고 CPU 바인딩 관계형 DW 워크로드에 대한 일괄 처리 모드를 제공합니다.
인터리브 실행 예, 데이터베이스 호환성 수준 140부터 고정 추측 대신 첫 번째 컴파일에서 발생한 다중 문 테이블 반환 함수의 실제 카디널리티를 사용합니다.
메모리 부여 피드백(일괄 처리 모드) 예, 데이터베이스 호환성 수준 140부터 일괄 처리 모드 쿼리에 디스크로 분산되는 작업이 있는 경우 연속 실행을 위해 메모리를 추가합니다. 쿼리가 할당된 메모리의 > 50%를 낭비하는 경우 연속 실행을 위한 메모리 부여 크기를 줄입니다.
메모리 부여 피드백(행 모드) 예, 데이터베이스 호환성 수준 150부터 행 모드 쿼리에 디스크로 분산되는 작업이 있는 경우 연속 실행을 위해 메모리를 추가합니다. 쿼리가 할당된 메모리의 > 50%를 낭비하는 경우 연속 실행을 위한 메모리 부여 크기를 줄입니다.
스칼라 UDF 인라인 처리 예, 데이터베이스 호환성 수준 150부터 스칼라 UDF는 호출 쿼리로 "인라인"되는 해당 관계형 식으로 변환되어 성능이 크게 향상됩니다.
테이블 변수 지연 컴파일 예, 데이터베이스 호환성 수준 150부터 고정 추측 대신 첫 번째 컴파일에서 발생한 테이블 변수의 실제 카디널리티를 사용합니다.

SQL Server 2017용 IQP 기능

IQP 기능 SQL Server 2017(14.x)에서 지원 설명
적응 조인(일괄 처리 모드) 예, 데이터베이스 호환성 수준 140에서 SQL Server 2017(14.x)부터 적응형 조인은 실제 입력 행을 기준으로 런타임 중에 조인 형식을 동적으로 선택합니다.
대략적인 고유 개수 고성능 및 낮은 메모리 공간의 이점을 통해 빅 데이터 시나리오에 대한 대략 COUNT DISTINCT 적인 정보를 제공합니다.
인터리브 실행 예, 데이터베이스 호환성 수준 140부터 고정 추측 대신 첫 번째 컴파일에서 발생한 다중 문 테이블 반환 함수의 실제 카디널리티를 사용합니다.
메모리 부여 피드백(일괄 처리 모드) 예, 데이터베이스 호환성 수준 140부터 일괄 처리 모드 쿼리에 디스크로 분산되는 작업이 있는 경우 연속 실행을 위해 메모리를 추가합니다. 쿼리가 할당된 메모리의 > 50%를 낭비하는 경우 연속 실행을 위한 메모리 부여 크기를 줄입니다.

쿼리 저장소 요구 사항

몇 가지 지능형 쿼리 처리 기능 제품군에서는 사용자 데이터베이스를 활용하기 위해 쿼리 저장소를 사용하도록 설정해야 합니다. 쿼리 저장소를 사용하도록 설정해야 하는 경우 쿼리 저장소 사용을 참조하세요.

IQP 기능 쿼리 저장소가 사용하도록 설정되어야 하고 READ_WRITE
적응 조인(일괄 처리 모드) 아니요
대략적인 고유 개수 아니요
대략적인 백분위수 아니요
Rowstore의 일괄 처리 모드 아니요
CE(카디널리티 추정) 피드백
DOP(병렬 처리 수준) 피드백
인터리브 실행 아니요
메모리 부여 피드백(일괄 처리 모드) 아니요
메모리 부여 피드백(행 모드) 아니요
메모리 부여 피드백(백분위수 및 지속성 모드)
쿼리 저장소를 사용하여 최적화된 계획 강제 실행
스칼라 UDF 인라인 처리 아니요
매개 변수 중요한 계획 최적화 아니요, 하지만 권장
테이블 변수 지연 컴파일 아니요