열 기반 엔진 문제 해결

이 페이지에서는 PostgreSQL용 AlloyDB 열 기반 엔진과 관련된 일반적인 문제 및 질문에 대한 권장 수정사항과 정보를 제공합니다.

참조된 열을 열 기반 엔진에 추가했지만 SELECT 쿼리에서 사용하지 않음

설명: 열 기반 엔진을 사용하려면 조인, 스캔 등 쿼리 프래그먼트에서 참조되는 모든 열이 열 저장소에 있어야 합니다. 참조된 열이 열 기반 엔진에 없으면 쿼리 프래그먼트가 기본적으로 행 기반 저장소로 설정됩니다.

이 컨텍스트에서 쿼리 프래그먼트는 스캔 노드가 여러 개 있을 수 있는 쿼리입니다. 예를 들어 쿼리 프래그먼트에는 조인을 위한 두 개의 스캔 노드가 있을 수 있습니다. 한 스캔 노드는 비열 형식을 사용하고 다른 스캔 노드는 열 형식을 사용할 수 있습니다. 스캔 노드의 모든 열(필터 열 및 프로젝션 열)은 열 형식으로 채워져야 합니다. 마찬가지로 쿼리에는 일부 파티션이 열 형식이고 다른 파티션이 비열 형식일 수 있습니다.

권장 수정사항: 참조된 모든 열이 컬럼형 엔진에 있는지 확인하려면 다음 단계를 따르세요.

  1. 지원되는 데이터 유형을 확인합니다.

    AlloyDB가 열 기반 엔진과 함께 사용할 열의 모든 데이터 유형을 지원하는지 확인합니다. 자세한 내용은 지원되는 데이터 유형을 참고하세요. AlloyDB에서 중요한 데이터 유형을 지원하지 않는 경우 Google Cloud 지원팀에 문의하세요.

  2. 지원되는 연산자를 확인합니다.

    AlloyDB가 열 기반 엔진의 데이터 유형에 대한 연산자를 지원하는지 확인합니다. 지원되는 연산자에 대한 자세한 내용은 열 기반 엔진의 이점을 활용하는 쿼리 유형을 참고하세요.

  3. EXPLAIN COLUMNAR_ENGINE 명령어를 실행합니다.

    특정 쿼리에서 열 형식 엔진을 사용하지 못하도록 하는 문제를 식별하고 해결하려면 다음 EXPLAIN COLUMNAR_ENGINE 명령어를 실행하세요.

    EXPLAIN (COLUMNAR_ENGINE, ANALYZE) SELECT column1, column2 FROM my_table WHERE column3 > 100;
    

열 기반 엔진에서 테이블을 추가하거나 삭제할 수 없습니다.

설명: 열 기반 엔진에서 테이블을 추가하거나 삭제하려고 합니다.

권장 해결 방법: 사용자 권한을 확인하세요. 테이블에 대한 읽기 권한이 있는 경우에만 열 기반 엔진에서 테이블을 추가하거나 삭제할 수 있습니다.

열 형식 데이터 크기가 할당된 메모리를 초과함

설명: 열 기반 데이터 크기가 열 기반 엔진에 할당된 메모리를 초과하면 성능 또는 데이터 처리 문제가 발생합니다.

권장 해결 방법: 최적의 성능을 위해 AlloyDB의 추천 기능을 사용하여 열 형식 엔진을 채울 최적의 테이블과 열을 식별하세요.

권장 테이블과 열이 열 형식 엔진의 실제 메모리를 초과하면 초과하는 열 형식 데이터가 초고속 캐시 레이어의 일부를 사용합니다. 열 형식 엔진에 없는 테이블의 나머지 데이터에 대한 쿼리는 행 스토어를 투명하게 사용합니다.

열 기반 엔진 메모리 및 스토리지 캐시 할당을 조정할 수도 있습니다. 열 기반 엔진은 메모리 및 스토리지 캐시의 기본 크기로 프로비저닝됩니다. 메모리 및 스토리지 캐시를 수동으로 구성할 수 있습니다. 열 기반 엔진에 할당된 메모리 또는 스토리지 캐시의 양을 변경하려면 열 기반 엔진의 메모리 구성을 참고하세요.