当开启了Auto Analyze后,系统会根据默认设定的时间和机制进行巡检并执行Auto Analyze,会消耗一定的资源。在某些业务场景下,默认的机制可能会不适用业务场景,例如数据写入更新不频繁场景,可以通过修改默认参数来减少Auto Analyze的频率。Superuser可以根据业务情况更改默认参数,以此达到部分性能调优的目的。修改周期性检查所有内部表的更新时间间隔,内部表默认每10分钟执行一次Auto Analyze。
session级别,只对当前链接生效,set hg_experimental_auto_check_table_changes_interval = '10min';
DB级别,执行后整个DB生效,将<databasename>替换为实际的DB名称。alter database <databasename> set hg_experimental_auto_check_table_changes_interval = '10min';修改周期性检查所有外表的更新时间间隔,外部表默认每4小时执行一次Auto Analyze。
session级别,只对当前连接生效。set hg_experimental_auto_check_foreign_table_changes_interval = '240min';
DB级别,执行后整个DB生效,将<databasename>替换为实际的DB名称。alter database <databasename> set hg_experimental_auto_check_foreign_table_changes_interval = '240min';修改扫描表的最大记录数,扫描表的最大记录数默认是224条(16,777,216条),如果表的记录条数超过224条,将不再对超过的记录数自动进行Auto Analyze。
说明:对于分区表,224条是指整个父表的记录条数。session级别,只对当前连接生效。set hg_experimental_auto_analyze_max_sample_row_count = 1 << 24;DB级别,执行后整个DB生效,将<databasename>替换为实际的DB名称。alter database <databasename> set hg_e。更多详情参考文档。