【发布时间】:2014-02-11 08:09:22
【问题描述】:
我正在优化一个长时间运行的 T-SQL 查询。不知何故,我记得 SQL Server 中有一个功能可以检查如果索引存在,计划将如何。 CREATE VIRTUAL INDEX 之类的,然后检查计划。但我没有找到如何实现这一点。
SQL Server 2008R2 中有这样的功能吗?
【问题讨论】:
-
从未听说过
VIRTUAL INDEX我知道INDEXED VIEWS。通常,如果我想测试使用特定索引如何执行某些操作。我实际上创建了它,运行我的查询,如果我不需要它,则在事后删除它。 -
我认为您可能需要 Sql Server Tuning Advisor 之类的东西,它会查看您的查询并建议您哪些索引可以帮助提高查询的性能。它不会创建任何虚拟索引,但它只会为您提供有关哪些索引可以提高查询性能以及提高多少的建议。看看这里technet.microsoft.com/en-us/library/ms173494(v=sql.105).aspx
-
在您看到调整顾问的建议之后,您必须根据您的个人需求决定是否创建该索引。
-
当您查看您的
ACTUAL EXECUTION PLAN时,是否建议添加索引?您不能依赖它,但 SQL Server 应该建议新的索引以及它将如何改进您的查询。 -
你可能在想hypothetical indexes。没有记录在案的方法可以自己使用它们。
标签: sql-server sql-server-2008-r2 indexing sql-execution-plan