維持記憶體內資料欄儲存庫資料的新鮮度

選取說明文件版本:

本頁面說明如何維護 AlloyDB Omni 容器中,資料欄引擎資料欄儲存庫的資料新鮮度。

新增、刪除或更新資料表列時,資料欄引擎不會立即更新資料欄儲存庫中的資料。而是將資料欄儲存空間中受影響的內容標示為無效,並使用資料欄儲存空間中的資料欄導向資料,以及資料列快取和資料庫儲存空間中的資料列導向資料,規劃及執行查詢。

隨著越來越多資料區塊失效,直欄引擎提供的查詢效能改善幅度會逐漸縮小,直到需要重新整理直欄資料,才能恢復查詢效能。達到這個重新整理門檻時,直欄引擎會使用背景工作,重新整理直欄儲存區中的無效資料。根據預設,直欄引擎會使用 50 的重新整理門檻,表示當直欄商店中 50% 的內容失效時,系統會將該內容標示為重新整理。您可以變更這項重新整理門檻,調整自動重新整理的負擔,並可能為應用程式工作負載獲得更佳的持續查詢效能。

此外,您也可以隨時手動重新整理資料表中的資料。通常,您會在變更資料表後,盡快手動重新整理,讓資料欄存放區反映變更。

變更資料欄引擎的重新整理門檻

編輯 google_columnar_engine.refresh_threshold_percentage 資料庫旗標的值,即可變更資料欄引擎的重新整理門檻。

    ALTER SYSTEM SET google_columnar_engine.refresh_threshold_percentage=THRESHOLD;

THRESHOLD:介於 1100 之間的整數值。這個值指定內容中必須失效的資料區塊百分比,內容才會標示為需要重新整理。

手動重新整理資料欄儲存庫中的資料表資料

執行 google_columnar_engine_refresh SQL 函式,手動重新整理記憶體內資料欄儲存區中的資料表資料。

SELECT google_columnar_engine_refresh(TABLE_NAME);

TABLE_NAME:包含資料表或具體化檢視區塊名稱的字串。如果資料表或檢視區塊位於 public 以外的結構定義中,請使用 SCHEMA_NAME.TABLE_NAME 格式指定結構定義名稱,例如 myschema.mytable