19.4.16

HANA Smart Data Access Tuning

Background

일반적으로 HANA Column Table은 효율적인 쿼리 Plan을 생성하기 위해서 별도의 Statistics를 필요로 하지 않습니다. 이는 Delta Merge를 통해서 각 Column별로 Data Dictionary를  생성하여 Min, Max, Distinct, Count 등과 같은 정보를 이미 가지고 있기 때문입니다.
Smart Data Access를 통해서 생성한 Virtual Table의 경우 Delta Merge를 수행하지 않기 때문에 해당 테이블이 어떤 성격의 데이터를 가지고 있는지 알 수 없습니다. Federation Query를 수행하는 주체인 HANA 입장에서는 원격의 테이블이 Black Box와 다름 없습니다. 
따라서 Virtual Table에 대한 통계정보의 수집이 중요. 이는 Optimizer가 가장 효율적인 Plan을 생성하고 선택할 수 있도록 도와주기 때문에 Federation 쿼리의 성능에 중요한 역할을 합니다.
Dynamic Tiering의 Extended Table도 동일한 기반 기술을 바탕으로 동작하므로 똑같이 통계정보 수집이 중요합니다.

TEST Environment

Local DB와 Remote DB가 Hot과 Warm 데이터 영역으로 구분되어 있고 SDA를 통해 서로 연결되어 있는 테스트 환경을 구성합니다.
Hot 과 Warm 데이터를 아우르는 통합 View 생성하여 Federation 쿼리를 통해 최신 데이터와 Historical 데이터를 동시에 조회할 수 있는 환경 구성합니다.
통계정보 수집에 따른 효과를 확인하기 위해 통계수집 전과 후의 쿼리 실행 계획(Visual Plan, Explain Plan) 수집합니다.
통계정보는 쿼리에서 사용하는 컬럼(Selection List, Predicate)들을 대상으로 수집합니다.

- CREATE STATISTICS ON TABLE_NAME (COLUMN_NAME,…) TYPE HISTOGRAM;

1. Federation Query with No Statistics




2. Federation Query with Statistics



















Cloclusion

Virtual Table / Extended Table의 통계 정보의 생성 통해 Federation SQL 수행 시 Optimizer가 보다 효율적인 실행 계획을 생성할 수 있습니다.
 통계 정보 수집 여부에 따라 쿼리 성능이 달라지기 때문에 통계정보 수집은 SDA 환경에서 가장 기본적인 튜닝 방법입니다.
Virtual Table / Extended Table을 사용하는 쿼리가 있다면 사용하는 Projection List, Join Key, Predicate  등의 컬럼에 대해 통계정보 수집은 필수적입니다.


No comments:

Post a Comment