PostgreSQL怎样查找需要收集的vacuum表信息
在执行 VACUUM 和 ANYLYZE 期间,系统会维护一个用于估算各种I/O操作所消耗的内部计数器,当该值达到vacuum_cost_limit的值时,该进程会休眠 vacuum_cost_delay 指定的时间,并重置计数器的值,继续运行 VACUM 或者 ANYLYZE 操作
vacuum_cost_limit = 200 vacuum_cost_delay = 0 # 单位微秒,默认为 0 没有开启
该参数 vacuum_cost_delay 主要用于并发时降低I/O的影响,推荐为10
vacuum_cost_page_hit = 1 # 代表从缓存池查找共享的hash table并扫描 该`页`的内容 #的估计值 vacuum_cost_page_miss = 10 # 0-10000 credits vacuum_cost_page_dirty = 20
NOTE
当一张表中包含了大量数据时,同时进行删除或者更新操作时,VACUUM 并不是最好的方案,
如果有该情况,则应该使用 VACUU FULL ,当执行 ALTER TABLE 时,会重新 COPY整
个表和重新构建索引,会进行执行锁,临时占用和原始表大小的磁盘空间,直到新数据COPY完成。
升级执行计划
执行计划通过自己或者 VACUUM调用命令 ANALYZE 收集统计,
创建 表达式索引 能够提高查询执行计划
1default_statistics_target = 100 #提高查询的 析计划 (编辑:焦作站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |