为什么数日后一些查询会变慢?更新统计也不提速?要使这些查询像以前的速度一样唯一的方法是卸载表,删除表然后再重新上载表,为什么会发生这样的问题?(From 1851, 版本: DBMaster4.3)

~ 0 min
2016-02-24 07:54

这可能是关于优化器的一个特殊情况,DBMaster优化器会设想数据在表中的分配状态是均衡的。如果客户端的数据分配是skew的话优化器不能找出到QEP的合并连接(最好的执行计划),它将采用嵌套连接来执行。

因为数据是skew,所以在客户执行更新统计table_name simple=100而获取真正的统计值之后,DBMaster优化器还会使用嵌套连接来执行。

甚至可以创建另一个索引,优化器将把主键作为执行索引。

但是当卸载和上载之后,默认的优化器将使用默认统计值来指定执行计划,它会设想这个数据分配是均衡的,所以它将会采用最好的执行计划。

这不是一个bug;DBMaster已经改良了优化器规则来支持所有种类分配的数据并实施最好的执行计划。

平均分: 0 (0 投票)

你不能对该内容发表评论

标签