Azure Synapse SQL의 배포 관리자

적용 대상: Azure Synapse Analytics 전용 SQL 풀(이전의 SQL DW)

Azure Synapse SQL에서 각 테이블은 고객이 선택한 전략(라운드 로빈, 해시 분산, 복제됨)을 사용하여 배포됩니다. 선택한 배포 전략은 쿼리 성능에 상당한 영향을 미칠 수 있습니다.

Azure Synapse SQL의 DA(배포 관리자) 기능은 고객 쿼리를 분석하고 쿼리 성능을 개선시키기 위해 테이블에 대한 최상의 배포 전략을 권장합니다. 관리자가 고려할 쿼리는 고객이 제공하거나 DMV에서 사용할 수 있는 기록 쿼리에서 가져올 수 있습니다.

참고 항목

배포 관리자는 현재 Azure Synapse Analytics의 미리 보기 상태입니다. 미리 보기 기능은 테스트 전용이며 프로덕션 인스턴스나 프로덕션 데이터에서는 사용하지 않아야 합니다. 미리 보기 기능으로 배포 관리자는 동작이나 기능이 변경될 수 있습니다. 데이터가 중요하다면 테스트 데이터의 사본을 보관하세요. 배포 관리자는 다중 열 분산 테이블을 지원하지 않습니다.

필수 조건

  • T-SQL 문 SELECT @@version을 실행하여 Azure Synapse Analytics 전용 SQL 풀 버전이 10.0.15669 이상인지 확인합니다. 버전이 더 낮으면 유지 관리 주기 동안 새 버전이 프로비저닝된 전용 SQL 풀에 자동으로 도달해야 합니다.

  • 관리자를 실행하기 전에 통계가 사용 가능하고 최신 상태인지 확인합니다. 자세한 내용은 테이블 통계 관리, CREATE STATISTICSUPDATE STATISTICS 문서에서 통계에 대한 자세한 내용을 참조하세요.

  • SET RECOMMENDATIONS T-SQL 명령을 사용하여 현재 세션에 대해 Azure Synapse 배포 관리자를 사용하도록 설정합니다.

워크로드 분석 및 배포 권장 사항 생성

다음 자습서에서는 배포 관리자 기능을 사용하여 고객 쿼리를 분석하고 최상의 배포 전략을 권장하는 샘플 사용 사례를 설명합니다.

배포 관리자는 사용자 테이블에서 실행되는 쿼리만 분석합니다.

1. 배포 관리자 저장 프로시저 만들기

관리자를 쉽게 실행하려면 데이터베이스에 두 개의 새 저장 프로시저를 작성합니다. GitHub에서 다운로드할 수 있는 CreateDistributionAdvisor_PublicPreview 스크립트를 실행합니다.

명령 설명
dbo.write_dist_recommendation DA가 분석할 쿼리를 정의합니다. 쿼리를 수동으로 제공하거나 sys.dm_pdw_exec_requests의 실제 워크로드에서 최대 100개의 과거 쿼리를 읽을 수 있습니다.
dbo.read_dist_recommendation 관리자를 실행하고 권장 사항을 생성합니다.

다음은 관리자를 실행할 수 있는 방법의 예입니다.

2a. DMV의 과거 워크로드에 대해 관리자 실행

다음 명령을 실행하여 분석 및 배포 권장 사항을 위한 워크로드의 마지막 100개 쿼리를 읽습니다.

EXEC dbo.write_dist_recommendation <Number of Queries max 100>, NULL
go
EXEC dbo.read_dist_recommendation;
go

DA에서 분석한 쿼리를 확인하려면 GitHub에서 다운로드할 수 있는 e2e_queries_used_for_recommendations.sql 스크립트를 실행합니다.

2b. 선택한 쿼리에 대해 관리자 실행

dbo.write_dist_recommendation의 첫 번째 매개 변수는 0으로 설정되어야 하고 두 번째 매개 변수는 DA가 분석할 최대 100개의 쿼리를 세미콜론으로 구분된 목록입니다. 아래 예에서는 세미콜론(select count (*) from t1;select * from t1 join t2 on t1.a1 = t2.a1;)으로 구분된 두 문에 대한 배포 권장 사항을 확인하려고 합니다.

EXEC dbo.write_dist_recommendation 0, 'select count (*) from t1; select * from t1 join t2 on t1.a1 = t2.a1;'
go
EXEC dbo.read_dist_recommendation;
go

3. 권장 사항 보기

dbo.read_dist_recommendation 시스템 저장 프로시저는 실행이 완료되면 다음 형식으로 권장 사항을 반환합니다.

열 이름 설명
Table_name DA가 분석한 테이블입니다. 권장 변경 여부에 관계없이 테이블당 한 줄.
Current_Distribution 현재 테이블 배포 전략.
Recommended_Distribution 권장 배포. 권장되는 변경 내용이 없는 경우 Current_Distribution과 동일할 수 있습니다.
Distribution_Change_Command 권장 사항을 구현하기 위한 CTAS T-SQL 명령입니다.

4. 조언 구현

  • 권장되는 분산 전략으로 새 테이블을 만들려면 배포 관리자에서 제공하는 CTAS 명령을 실행합니다.
  • 새 테이블에서 실행되도록 쿼리를 수정합니다.
  • 성능 개선을 위해 비교하기 위해 이전 테이블과 새 테이블에서 쿼리를 실행합니다.

참고 항목

배포 관리자를 개선하는 데 도움이 되도록 이 빠른 설문 조사를 작성하세요.

문제 해결

이 섹션에는 발생할 수 있는 일반적인 문제 해결 시나리오와 일반적인 실수가 포함되어 있습니다.

1. 이전 관리자 실행의 부실 상태

1a. 증상:

관리자를 실행할 때 다음 오류 메시지가 표시됩니다.

Msg 110813, Level 16, State 1, Line 1
Calling GetLastScalarResult() before executing scalar subquery.
1b. 해결 방법:
  • 선택 쿼리에서 관리자를 실행하기 위해 작은따옴표 ''를 사용하고 있는지 확인합니다.
  • SSMS에서 새 세션을 시작하고 관리자를 실행합니다.

2. 관리자 실행 중 오류

2a. 증상:

'결과' 창은 아래에 CommandToInvokeAdvisorString을 표시하지만 아래에 RecommendationOutput은 표시하지 않습니다.

예를 들어 Command_to_Invoke_Distribution_Advisor 결과 집합만 표시됩니다.

Screenshot of the output of a T-SQL result showing the Command_to_Invoke_Distribution_Advisor.

그러나 테이블 변경 T-SQL 명령을 포함하는 두 번째 결과 집합은 아닙니다.

Screenshot of the output of a T-SQL result showing the Command_to_Invoke_Distribution_Advisor with a second resultset containing table change T-SQL commands.

2b. 해결 방법:
  • 위의 CommandToInvokeAdvisorString 출력을 확인합니다.

  • DA가 고려한 쿼리WHERE 절을 편집하여 직접 선택한 쿼리 또는 DMV에서 여기에 추가되었을 수 있는 더 이상 유효하지 않을 수 있는 쿼리를 제거합니다.

3. 권장 출력 후 처리 오류

3a. 증상:

다음 오류 메시지가 표시됩니다.

Invalid length parameter passed to the LEFT or SUBSTRING function.
3b. 해결 방법:

GitHub에서 최신 버전의 저장 프로시저가 있는지 확인합니다.

Azure Synapse 제품 그룹 피드백

배포 관리자를 개선하는 데 도움이 되도록 이 빠른 설문 조사를 작성하세요.

이 문서에서 제공하지 않는 정보가 필요한 경우 Azure Synapse에 대한 Microsoft Q&A 질문 페이지에서 다른 사용자와 Azure Synapse Analytics 제품 그룹에 궁금한 내용을 질문할 수 있습니다.

Microsoft는 이 포럼을 적극적으로 모니터링하여 사용자의 질문에 다른 사용자나 당사 직원이 응답하도록 합니다. Stack Overflow에 질문하는 것을 선호하는 경우를 위해 Azure Synapse Analytics Stack Overflow 포럼도 제공합니다.

기능 요청에 대해서는 Azure Synapse Analytics 피드백 페이지를 사용하세요. 요청을 추가하거나 다른 요청을 추천해 주시면 저희가 가장 수요가 많은 기능에 집중하는 데 도움이 됩니다.

다음 단계