日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

手動收集統計信息

統計信息記錄了數據庫表中元數據的相關信息。查詢優化器需要根據最新的統計信息,優化并執行查詢計劃,以提高數據庫的性能。本文為您介紹在云原生數據倉庫AnalyticDB PostgreSQL版數據庫中如何使用ANALYZE命令手動收集統計信息。

適用場景

手動收集統計信息,無需頻繁使用。可在滿足以下條件時,手動執行ANALYZE命令收集統計信息。

  • 表中超過20%數據更新(INSERTUPDATEDELETE)或創建索引后,需手動收集統計信息。

  • ETL任務過程中,會涉及多次INSERTUPDATEDELETE,可根據實際情況,適當添加ANALYZE語句以手動收集統計信息。

  • 新建的表(包含函數或存儲過程)寫入數據后,可根據實際情況,適當添加ANALYZE語句以手動收集統計信息。

  • 調優過程中,從執行計劃中看到表行數估算為1行,計劃中出現較多的Broadcast、Sort+GroupByAgg、NestLoop等算子時,考慮對相應數據表進行手動收集統計信息。

ANALYZE用法

云原生數據倉庫AnalyticDB PostgreSQL版數據庫使用ANALYZE命令收集統計信息。

語法

ANALYZE [VERBOSE] [ROOTPARTITION ALL|[table [(column[, ... ])]] ]
說明

ANALYZE可單獨使用。單獨使用時為數據庫中所有的表收集統計信息。該方式運行時間可能會比較久。

參數說明

  • VERBOSE:打印ANALYZE執行過程中掃描行數、可見行數等統計信息。如果不含此參數將不打印統計信息。

  • ROOTPARTITION ALL|[table [(column[, ... ])]]:對分區表的主表觸發收集統計信息。

    • ROOTPARTITION ALL:對當前數據庫下所有分區表的主表觸發收集統計信息。

    • ROOTPARTITION [table]:對某張分區表的主表觸發收集統計信息。

    • 如果不含ROOTPARTITION,對分區主表執行ANALYZE時,則會對分區子表也執行統計信息。

  • table[(column1, column2, ...)]:對某張表的若干列收集統計信息。如果不寫列名,默認為整張表的所有列收集統計信息。為減少ANALYZE執行時間,您可以只對用JOINWHERESORTGROUP BY或者HAVING涉及的列收集統計信息。此時運行ANALYZE需要指定表的名稱和列的名稱作為參數,例如:ANALYZE t1(a, b)

使用示例

對orders表的o_orderdate列和o_orderpriority列收集統計信息。

ANALYZE orders(o_orderdate, o_orderpriority);