我在Server中使用了调优顾问工具,它根据给定的工作负载提供索引推荐。
我想为PostgreSQL创建一个类似的工具。我看了一些研究论文。但是,我无法找到SQL Server调优顾问用于提供索引建议的确切算法。
如果有人知道算法或任何来源,我可以从哪里得到算法,请指导我。请注意,我想提供基于工作负载的建议,而不是一个查询。提前谢谢。
发布于 2016-10-25 08:44:39
数据库优化顾问的精确算法没有文档化,但是通过使用服务器端跟踪查看它生成的命令,您可以稍微了解一下它是如何工作的。
我不知道它使用什么算法来确定要创建哪些算法,但它严重依赖于创建假设指标,然后使用无文档的DBCC AUTOPILOT来创建使用这些假设索引的执行计划。
我想,在某种程度上,它会比较产生的执行计划,以确定哪些执行计划的成本更低。
Daniel有一篇很棒的文章,解释了它是如何工作的,如果你真的想要的话,你可以手工完成:使用假设指标的服务器性能优化。
从这一页:
您正在调优查询,并需要检查新索引对性能的影响。但是该表有数百万行,创建索引需要很长时间。继续阅读,您将看到如何使用无文档的DBCC自动驾驶命令创建和测试假设的索引。
和
因为这是一个无文档的特性,所以没有关于它的信息,但据我所知,自动驾驶仪是数据库引擎优化顾问( DTA )的关键组件;这应该适用于可以使用DTA的所有版本。
发布于 2016-10-24 21:05:04
它不是公开的,也不是记录在案的,而且它是从服务器版本更改到版本。
https://dba.stackexchange.com/questions/153211
复制相似问题