Sql 如何测试数据库最佳实践的性能

Sql 如何测试数据库最佳实践的性能,sql,sql-server,performance,sql-server-2008,Sql,Sql Server,Performance,Sql Server 2008,我需要测试数据库中某些表的索引性能 在使用索引或不使用索引运行查询后,我始终使用此代码 SELECT * FROM sys.dm_exec_query_optimizer_info; 我收到了有关我的查询的详细信息 我的问题是: using sys.dm_exec_query_optimizer 我的问题的细节总是在变化,让人难以理解。 最好的解决方案是什么 您知道任何方法或最佳实践吗?您必须了解查询优化器告诉您的内容。数据变化良好;这意味着,根据是否有索引,情况会有所不同。然而,优化器信息

我需要测试数据库中某些表的索引性能

在使用索引或不使用索引运行查询后,我始终使用此代码

SELECT * FROM sys.dm_exec_query_optimizer_info;
我收到了有关我的查询的详细信息

我的问题是:

using sys.dm_exec_query_optimizer
我的问题的细节总是在变化,让人难以理解。 最好的解决方案是什么


您知道任何方法或最佳实践吗?

您必须了解查询优化器告诉您的内容。数据变化良好;这意味着,根据是否有索引,情况会有所不同。然而,优化器信息的呈现方式并没有标准化——每个DBMS的表现方式都不同。如果你要解释数据,你必须理解它

查看查询计划很重要。归根结底,衡量实际绩效也是如此。这在一定程度上取决于您为什么要查看索引。如果您正在解决一个感知到的性能问题,那么显然您需要确保通过您添加的一个或多个索引来解决该问题。您还需要确保在维护操作(插入、删除、更新操作)上添加索引的成本是不可容忍的—您没有添加太多索引。您可能还需要考虑磁盘空间的使用——将这么多的磁盘空间提交给这么多的索引是可以的。
如果没有关于您的DBMS或特定查询的更具体的信息,就很难给出更具体的建议。

感谢Jonathan花时间回答我的问题,我是SQL新手,欢迎您提供任何建议。我使用的是MS SQL 2010。@GibboK:使用MS SQL 2010会让你超出我的详细知识范围,而详细知识将是必要的(正如我在回答中所暗示的)。特别是因为MS SQL 2010并不存在。最后一个版本是MSS SQL 2008 R2。@TomTom:好的-这正好说明了在我的详细知识范围之外有多远需要去做。对不起,伙计们!我的错误我有MS SQL 2008:-)请澄清您是从哪里获得SQL Server 2010的-考虑到没有(最后一个版本是2008 R2),也永远不会有(下一个版本是IIRC 2011-2012,不是今年)。是的tomtom。你是对的。我的错误我有MS SQL 2008:-)