인메모리 열 스토어 데이터의 최신 상태 유지

문서 버전을 선택합니다.

이 페이지에서는 컨테이너의 AlloyDB Omni에서 열 형식 엔진의 열 저장소에 있는 데이터의 최신 상태를 유지하는 방법을 설명합니다.

표 행이 추가, 삭제 또는 업데이트될 때 열 형식 엔진은 열 스토어의 데이터를 즉시 업데이트하지 않습니다. 대신 열 저장소에서 영향을 받는 콘텐츠를 무효로 표시하고 열 저장소의 열 중심 데이터와 행 캐시 및 데이터베이스 저장소의 행 중심 데이터를 모두 사용하여 쿼리를 계획하고 실행합니다.

시간이 지남에 따라 무효화되는 데이터 블록이 많아지면 열 형식 엔진에서 제공하는 쿼리 성능 개선이 줄어들어 쿼리 성능 개선을 다시 얻기 위해 열 형식 데이터를 새로고침해야 합니다. 이 새로고침 기준점에 도달하면 열 형식 엔진은 백그라운드 작업을 사용하여 열 저장소에서 잘못된 데이터를 새로고침합니다. 기본적으로 열 형식 엔진은 새로고침 기준점 50을 사용합니다. 이는 열 저장소의 지정된 콘텐츠가 콘텐츠의 50% 가 무효화되면 새로고침으로 표시됨을 나타냅니다. 이 새로고침 기준을 변경하여 자동 새로고침의 오버헤드를 조정하고 애플리케이션 워크로드의 지속적인 쿼리 성능을 개선할 수 있습니다.

또한 언제든지 열 스토어에서 표의 데이터를 수동으로 새로고침할 수 있습니다. 일반적으로 테이블의 변경사항이 변경 후 가능한 한 빨리 열 저장소에 반영되도록 하려면 수동 새로고침을 실행합니다.

열 기반 엔진의 새로고침 기준 변경

google_columnar_engine.refresh_threshold_percentage 데이터베이스 플래그의 값을 수정하여 열 기반 엔진의 새로고침 기준을 변경합니다.

    ALTER SYSTEM SET google_columnar_engine.refresh_threshold_percentage=THRESHOLD;

THRESHOLD: 1~100 사이의 정수 값입니다. 이 값은 콘텐츠가 새로고침되도록 표시되기 위해 무효화되어야 하는 콘텐츠의 데이터 블록 비율을 지정합니다.

열 저장소에서 테이블의 데이터를 수동으로 새로고침

google_columnar_engine_refresh SQL 함수를 실행하여 메모리 내 열 저장소의 테이블 데이터를 수동으로 새로고침합니다.

SELECT google_columnar_engine_refresh(TABLE_NAME);

TABLE_NAME: 테이블 또는 구체화된 뷰의 이름을 포함하는 문자열입니다. 테이블 또는 뷰가 public 이외의 스키마에 있는 경우 SCHEMA_NAME.TABLE_NAME 형식으로 스키마 이름을 지정합니다(예: myschema.mytable).