2017-01-19 6 views
0

AZURE DW에서 저장 프로 시저가 매우 느리게 실행됩니다. 모든 테이블과 sp를 다른 서버에 복사 했으므로 실행할 시간이 매우 적습니다. 고유 필드에서 해시 배포를 사용하여 테이블을 만들었지 만 sp가 매우 느리게 실행되고 있습니다. AZURE DW에서 sp의 성능을 어떻게 향상시킬 수 있는지 조언 해주십시오.고유 열에 HASH 분포가있는 테이블을 사용하는 경우 Azure DW에서 매우 느리게 실행되는 SP

+0

잘 나아 이상 답변 수 있습니다 http://serverfault.com/ – Tom

+0

일부 예제와 함께 설명하고 dtu 레벨에 대한 자세한 정보를 공유하십시오. – TheGameiswar

+0

Azure SQL DW는 그렇지 않습니다. 실제로 물리적 서버가 있습니다. 서버는 성능에 전혀 영향을 미치지 않는 논리적 컨테이너이므로 다른 서버로 옮겨서 실행하는 데 소요되는 시간이 짧다는 것이 무엇을 의미하는지 이해하지 못합니다. 자세한 내용을 제공하고 수행 한 작업을 명시하십시오. 또한 사용자가 쿼리를 실행하는 리소스 클래스는 어떤 DWU 수준입니까? 행 수는 몇 GB/TB입니까? – SQLmojoe

답변

1

최근 의견에서 데이터 샘플은 SQL DW에 대한 합리적인 테스트에 비해 너무 작습니다. 로컬 DWP가 SMP 인 경우 SQL DW는 MPP입니다. DWU100을 사용하더라도이 MPP 아키텍처의 기본 레이아웃은 로컬 SQL Server와 매우 다릅니다. 예를 들어, 모든 SQL DW에는 60 개의 사용자 데이터베이스가 DW에 전원을 공급하며 데이터는 그 전역에 퍼집니다. 기본 저장소는 일반적인 DW 유형 작업 부하에 대해 최적화 된 클러스터형 열 저장소입니다.

쿼리가 DW로 전송되면 로컬 계획을 작성하기 위해 기본 DB에 푸시 된 분산 쿼리 계획을 작성한 다음 스택을 실행하고 실행합니다. 이것은 많은 것처럼 보이며 작은 데이터 세트와 간단한 쿼리를위한 것입니다. 그러나 수십 억 개의 데이터가있는 수백 TB의 데이터를 처리 할 때 복잡한 집계를 실행해야하는 경우이 추가 오버 헤드는 상대적으로 작습니다. MPP 처리 능력으로 얻을 수있는 이점은 그다지 중요하지 않습니다.

진짜 이득을 볼 수있는 실제 크기에는 하드 번호가 없지만 최소 절반의 TB가 좋은 출발점이며 행은 실제로 수천만 개가되어야합니다. 물론 데이터 세트가 거대하지 않을 수도있는 경우가 있습니다 만 워크로드가 자연스럽게 MPP에 도움이되기 때문에 여전히 이득을 볼 수는 있지만 일반적이 아닙니다. 데이터 크기가 수십 또는 수백 GB 미만 범위이고 크게 증가하지 않으면 Azure SQL Database을 사용하면 훨씬 행복해집니다. 자원 클래스 관리, 작업 모니터링, 등 ... 체크 아웃 다음 링크에 관해서는

:

+0

감사합니다. 이것이 내가 고객에게 설명했던 것입니다. Azure DW의 중요성은 엄청난 양의 데이터에서만 나타납니다. 작은 데이터 세트의 경우 DW는 필요하지 않은 동일한 분배 작업을 수행하므로 실행 시간이 증가합니다. – sujal

+0

사실 일 필요는 없습니다. 다른 인덱스 선택을 할 수 있습니다 (예 : 힙 또는 클러스터 된 인덱스). 테이블 DDL, 저장 프로 시저 및 각 테이블에있는 레코드 수를 게시하여 도움을 드릴 수 있습니다. – wBob

+0

오버 헤드를 통해 특정 수준이 있다는 설명에 약간의 진실이 있습니다. 근본적으로 SMP 인 DWU 100에서 실행하려는 경우 SQL DB를 사용하여 확장 방식을 취하는 것이 좋습니다. 상당한 양의 데이터가있는 경우 MPP 환경의 이점을 실현하려면 100 DWU를 초과하여 확장해야합니다. 100 DWU를 초과하여 확장하고 여전히 성능 문제가있는 경우 DDL 및 병렬 실행 계획을 확인하면 문제 해결에 매우 유용합니다. 또한이 플랫폼에서는 열 통계가 매우 중요하다는 점을 기억하십시오. –