2016-12-21 2 views
1

Azure SQL 데이터웨어 하우스로 이동 및 이동을 평가할 응용 프로그램에 사용되는 일련의 캐시와 유사한 테이블이 있습니다.Azure SQL 데이터웨어 하우스에 테이블을 잘라내지 만 통계를 그대로 두십시오.

응용 프로그램은 로딩 된 후 사실 테이블 (시간, 위치, 제품 등 2 차원 또는 3 차원)에 조인 할 때 사용되는 일련의 캐시와 같은 테이블을 사용합니다. 캐시와 같은 테이블은 응용 프로그램을 통해 공유되며 서로 다른 보고서는 하나의 열에 식별자로 임의의 문자열을, 행을로드하고 사실 테이블의 차원 열에 대한 외래 키를로드합니다.

테이블이 TRUNCATE되면 통계가 손실됩니다. 힌트 등을 통해 통계를 유지할 수 있습니까?

+0

사용 사례는 무엇입니까? 테이블을 TRUCATE 할 때 남아있는 것은 모두 스키마입니다. 통계가 없으므로 데이터가 없습니다. 테이블이 재수 화되면로드되는 내용을 기반으로 새로운 통계가 생성됩니다. 오래된 통계를 유지하는 것이 가치 있다고 생각하는 유스 케이스에 대해 자세히 설명해 주시겠습니까? – SQLmojoe

+0

UI의 사용자 선택이 데이터베이스의 작업으로 변환되므로 캐시와 같은 테이블이 하루 종일 점진적으로로드됩니다. 따라서 사용자가 하루 전에 통계를 수집하면 테이블이 밤새 TRUNCATE 상태가되므로 대표가되지 않습니다. 모든 보고서에서 통계를 수집하는 것은 지나칠 수 있습니다 (잠금 경합이 발생할 가능성이 있음). 나는 내가 TRUNCATE를 사용한다면 조사해야 할 통계를 가짜로 읽을 수있는 곳을 읽었다 고 생각했다. 아마도 DELETE를 사용하고 통계를 정적으로 유지하기 위해 로깅을 허용 할 수 있습니다. – Steve

+0

통계를 위조 할 능력이 없습니다. QO는 합리적인 시간에 가능한 최상의 계획을 세우기 위해 통계 (및 기타 사항)를 사용합니다. 가짜 통계를 제공하는 것은 비용 기반 QO를 갖는 목적을 다소 상쇄합니다. 우연히 가짜 통계를 사용하여 적절한 계획을 세울 확률은 통계가없는 적절한 계획을 얻는 것과 같습니다. 또한 통계 생성 및 업데이트는 잠금 경합을 도입하지 않습니다. 차단이 발생할 수 있지만 잠금 경합과 동일하지는 않습니다. – SQLmojoe

답변

1

아니요 'TRUNCATE'이후에 통계를 보관할 수 없습니다. 저의 칼럼을 리샘플링하는 것은 ('FULL SCAN'을 사용하지 않고) 어쨌든 오래 걸리지 않습니다. 이것은 결국 MPP 시스템입니다.

다시 잠그기, Azure SQL 데이터웨어 하우스의 기본 트랜잭션 격리 수준은 커밋되지 않음 읽기이므로 잠금 경합은 문제가되지 않습니다.

통계를 스푸핑하는 기술은 현재 Azure SQL Data Warehouse에서 사용할 수 없습니다.