【问题标题】:Indexing by Database engine tuning advisor按数据库引擎优化顾问编制索引
【发布时间】:2011-02-25 05:26:10
【问题描述】:

我们正在使用优化顾问为数据库建立索引。假设我们有两个查询从一个表中获取两组不同的数据。

当我们分析这两个查询时,我们得到了两种类型的建议,例如

 1. Index three columns c1,c2 and c3 in the table, here c1 is primary key.
 2. Index three columns c2,c3 and c4 in the table.

在这种情况下,我们必须如何进行。我们是否必须创建两个索引?请提出您的建议。

【问题讨论】:

    标签: sql-server performance


    【解决方案1】:

    您可以使用同一个数据库引擎优化会话同时分析这两个查询,并且您应该获得一个或多个相互兼容的索引建议。数据库调优顾问的建议是针对您的应用程序运行分析器一段时间,例如 5-10 分钟,具体取决于负载和查询数量。然后在优化顾问中一起运行整个结果以获得建议列表。

    希望这会有所帮助!

    编辑

    查看此链接了解更多信息:http://www.mssqltips.com/tip.asp?tip=1872

    【讨论】:

    • @mellamokb:实际上我们将查询分析为单独的工作负载文件。为此,我们从存储过程中取出查询部分,然后用表中的适当值替换变量值。这是正确的方法吗?
    • @mahesh:没关系。我唯一的一点是您想在一个工作负载中分析所有查询,而不是一次一个查询。这样,这些建议将适用于整个工作负载。如果您逐个查询分析查询,您可能会得到重叠的索引建议,如您所见,实际上没有一个可能是最好的。
    • @mellamokb:那么我可以将所有脚本复制到一个 .sql 文件中并进行分析吗?
    • @mellamokb:现在我们得到了推荐列表。我可以运行整个建议吗?有没有机会对数据库造成严重影响。
    • @mahesh:索引以减慢写入速度为代价提高了读取记录的性能。如果您有一个需要多次写入的表,您可能会注意到性能下降。最好的办法是在应用建议之前和应用建议之后比较应用程序的速度,看看它是否更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    相关资源
    最近更新 更多