![]() |
1
13
自动吸尘器应该可以做到这一点,只要你配置它达到你想要的性能。 笔记: 真空已满:这将重建表统计信息并回收磁盘空间负载。它锁住了整张桌子。 真空:这将重建表统计信息并回收一些磁盘空间。它可以与生产系统并行运行,但会产生大量影响性能的IO。 分析:这将重建查询计划器统计信息。这是由真空触发的,但可以自己运行。 |
![]() |
2
2
至于性能,使用字符串存储时间和状态信息是一个相当大的瓶颈。首先,文本索引是非常低效的,同一天比较两次至少需要11次比较(以您使用的格式),但是,使用时间类型可以简化为一次比较。这也会影响索引的大小,大索引很难搜索,数据库也不会将其保存在内存中。同样的注意事项也适用于state列。如果它表示一个小的状态集,则应使用映射到状态的整数,这将相应地减少索引的节点和索引大小。此外,如果不在查询中指定实际时间,即使使用se内置类型,此索引也将毫无用处。 |
![]() |
3
2
这闻起来像是索引膨胀。我让你看看这一页 http://www.postgresql.org/docs/8.3/static/routine-reindex.html 下面写着:
这似乎与您引用的“不需要维护或调整索引”的页面相冲突。 你试过“同时创建索引”吗? |
![]() |
4
1
与xmlscheduledtime进行比较的“2010-05-20t13:00:00.000”值是sql的一部分,还是作为参数提供的? 在计划如何运行查询时,如果一个字段必须小于一个提供的参数,并且该参数的值还未知,那么postgresql就没什么可继续的了。它不知道这是否能匹配几乎所有的行,或者几乎不匹配任何行。 阅读 how the planner uses statistics 当试图找出数据库使用计划的原因时,这会非常有帮助。 通过更改该复杂索引中字段的顺序,或创建一个新索引(按字段顺序排列)(campaign fq name、current state、xmlscheduledtime),您可能会获得更好的选择性能,因为从那时起,该索引将直接指向您感兴趣的活动fq名称和当前状态。ted in,xmlscheduledtime范围内的索引扫描都是您要查找的行。 |
![]() |
5
0
那是一个教科书案例。你应该把自动吸尘器设置得更有侵略性。 |
![]() |
mradul · 性能调整或不同子句的替代 9 年前 |