Azure Synapse Analytics 서버리스 SQL 풀에 대한 성능 조정 지침
적용 대상: Azure Synapse Analytics
이 문서는 Azure Synapse Analytics 서버리스 SQL 풀의 성능을 향상시키는 데 도움이 됩니다.
참고 항목
현재 활성 상태이거나 Azure Synapse Analytics에서 최근에 해결된 알려진 문제 목록을 검토합니다.
최적의 성능을 달성하고 Azure Synapse Analytics 서버리스 SQL 풀의 리소스 제약 조건과 관련된 오류를 방지하는 방법에 대한 자세한 내용은 다음 몇 섹션을 참조하세요.
모범 사례 및 문제 해결 가이드
다음 문서의 정보 및 전략은 서버리스 SQL 풀에서 최상의 성능을 얻는 데 도움이 될 수 있습니다. 이러한 문서를 사용하여 사용 사례를 검토하고 일반적인 문제를 해결하는 것이 좋습니다.
서버리스 SQL 풀의 크기 조정 이해
서버리스 SQL 풀은 적절한 크기를 수동으로 선택할 필요가 없습니다. 시스템은 쿼리 요구 사항에 따라 크기를 자동으로 조정하여 인프라를 관리하고 솔루션에 적합한 크기를 선택합니다.
Delta Lake 파일에 대한 성능 튜닝 지침
Delta Lake 파일의 성능 튜닝에 대한 자세한 내용은 다음 리소스를 참조하세요.
CSV 파일의 성능 조정 지침
서버리스 SQL 풀에서 CSV 파일을 쿼리할 때 고성능을 보장하는 가장 중요한 작업은 외부 테이블에 대한 통계를 만드는 것입니다. Parquet 및 CSV 파일에서 통계가 자동으로 생성되고 사용하여 OPENQUERY()
액세스되지만 외부 테이블을 사용하여 CSV 파일을 읽으려면 통계를 수동으로 만들어야 합니다.
서버리스 SQL 풀에서 CSV 파일을 쿼리하는 통계 역할에 대한 자세한 내용은 다음 문서를 참조하세요.
Power BI 및 기타 보고 도구 사용에 대한 권장 사항
Power BI 및 기타 보고 도구를 사용하는 경우 다음 모범 사례를 사용하는 것이 좋습니다.
- 항상 테넌트 위치를 확인합니다.
- 더 나은 사용자 환경을 위해 캐시를 설정합니다.
- 수백만 개의 레코드를 대시보드로 반환하지 않습니다.
- 예약된 새로 고침을 사용하여 SQL 서버리스 풀 리소스를 드레이닝하는 병렬 쿼리 실행을 방지합니다.
- Spark를 사용하여 일반적인 분석 쿼리를 미리 집계합니다. 이 "한 번 쓰기/많은 읽기" 접근 방식은 지속적으로 실행되는 많은 쿼리를 방지할 수 있습니다.
- 서로 다른 데이터 저장소 간의 조인의 경우: 필터를 사용하여 Azure 인프라 간에 이동된 빅 데이터 볼륨을 방지합니다.
- 문자 데이터 형식에 데이터 정렬을 사용합니다
Latin1_General_100_BIN2_UTF8
. 이 데이터 정렬은 도구가 스토리지에서 읽을 때 필터를 푸시다운하여 스토리지에서 서버리스 SQL 풀로 모든 데이터를 전송하는 것을 방지합니다. - 쿼리를 실행하는 동안 데이터를
char
varchar
캐스팅하거나 변환하는 경우 가장 최적의 크기를 사용합니다. 가능하면VARCHAR(MAX)
를 사용하지 않습니다. - 자동 유추는 데이터 형식을 최적이 아닐 수 있는 형식으로 변환합니다.
WITH
절을 사용하여 데이터 형식을 최적화합니다. - Azure Synapse SQL 서버리스 풀 리소스에는 제한이 있습니다. 쿼리를 동시에 실행하면 리소스가 소비됩니다. 여러 새로 고침이 병렬로 발생할 때 리소스 제한에 도달하는 Power BI(PBI) 대시보드를 보는 것이 일반적입니다. 예약된 새로 고침 및 부하 테스트는 이 문제를 방지하는 데 도움이 될 수 있습니다. 또한 여러 Azure Synapse 작업 영역을 사용하면 더 큰 동시성 요구 사항을 해결할 수 있습니다.
- 쿼리
sys.columns
를 실행하거나 뷰를 만든 후 데이터 형식을 확인하고 사용할sp_describe_first_result_set
select top 0 from <view>
수 있습니다. 이 방법은 .를 사용하는SELECT * FROM...
것보다 더 빠르고 비용이 적게 듭니다. - 문 생성기를 사용하여 쿼리에 대한 최적의 열 형식을 자동으로 만듭니다.
- 함수를
OPENJSON
사용하여 중첩된 JSON 데이터를 열로 노출합니다. 그러나 명령도 사용하는AS JSON
경우 열 형식은 다음과 여야NVARCHAR(MAX)
합니다. 이 방법은 성능에 적합하지 않습니다. 가장 좋은 옵션은WITH
절을 사용하여 중첩된 배열을 열로 노출하는 것입니다. - Cosmos DB 트랜잭션 저장소 파티션 키는 분석 저장소에서 사용되지 않습니다. 이제 Azure Synapse Link에서 트랜잭션 데이터를 모델링하여 데이터 수집 및 지점 읽기를 최적화할 수 있습니다.
추가 지침 및 모범 사례
범주 | 권장 작업 또는 설명서 |
---|---|
데이터 탐색 | Azure Storage Azure Storage에 쿼리 결과 저장 논리적 데이터 웨어하우스 |
OPENROWSET 및 외부 테이블 | OPENROWSET 함수 외부 테이블 저장 프로시저 Views 데이터 변환 |
서버리스 SQL 풀에서 사용 가능한 T-SQL 기능 | Azure Synapse 풀의 T-SQL 기능 |
타사 정보 고지 사항
이 문서에 나와 있는 다른 공급업체 제품은 Microsoft와 무관한 회사에서 제조한 것입니다. Microsoft는 이들 제품의 성능이나 안정성에 관하여 명시적이든 묵시적이든 어떠한 보증도 하지 않습니다.