排解資料欄引擎問題

本頁面提供常見問題的建議修正方式和資訊,以及有關 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 中的建議功能,找出要填入資料欄引擎的最佳資料表和資料欄。

如果建議的資料表和資料欄超過直欄式引擎的實體記憶體,多餘的直欄式資料會使用部分超快速快取層。查詢資料表中的其餘資料 (不在直欄式引擎中) 時,系統會透明地使用列儲存區。

您也可以調整資料欄引擎記憶體和儲存空間快取的分配量。資料欄引擎會佈建記憶體和儲存空間快取的預設大小。您可以手動設定記憶體和儲存空間快取。如要變更分配給資料欄引擎的記憶體或儲存空間快取大小,請參閱設定資料欄引擎的記憶體