新增、刪除或更新資料表列時,資料欄引擎不會立即更新資料欄儲存庫中的資料。而是將資料欄儲存空間中受影響的內容標示為無效,並使用資料欄儲存空間中的資料欄導向資料,以及資料列快取和資料庫儲存空間中的資料列導向資料,規劃及執行查詢。
隨著越來越多資料區塊失效,直欄引擎提供的查詢效能改善幅度會逐漸縮小,直到需要重新整理直欄資料,才能恢復查詢效能。達到這個重新整理門檻時,直欄引擎會使用背景工作,重新整理直欄儲存區中的無效資料。根據預設,直欄引擎會使用 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
。