更新统计信息
要获得良好的查询性能,准确的统计信息准确十分重要。通过使用 ANALYZE
语句更新统计信息,可以使查询优化器生成最优的查询计划。Apache Cloudberry 对表进行分析时,相关的数据信息被存储在系统目录表中。如果存储的信息过时了,查询优化器可能会生成低效的查询计划。
查看统计信息是否已更新
要查看一张表的统计信息是否是最新的,可以使用 pg_stat_all_tables
系统视图。这个视图中的 last_analyze
列显示该表最近一次被分析的时间,而 last_autoanalyze
列显示该表最近一次被自动分析的时间。执行 ANALYZE
语句时,这两列的时间信息都会被更新。
例如,要检查 test_analyze
表的统计信息是否已更新,可以执行以下查询:
SELECT schemaname, relname, last_analyze, last_autoanalyze
FROM pg_stat_all_tables
WHERE relname = 'test_analyze';
有选择地生成统计信息
不带任何参数执行 ANALYZE
语句会更新数据库中所有表的统计信息。这是一个非常耗时的过程,不推荐这样操作。建议在数据发生变化时,选择性地对表执行 ANALYZE
,或者使用 analyzedb 工具。