我需要测试数据库中某些表的索引性能。
使用索引运行查询或没有索引后,我总是使用此代码;
SELECT * FROM sys.dm_exec_query_optimizer_info;
我收到有关查询的详细信息。
我的问题是:
using sys.dm_exec_query_optimizer
我的查询的详细信息总是在变化,难以理解。 什么是最好的解决方案?
您知道任何方式或最佳做法吗?
答案 0 :(得分:2)
您必须了解查询优化器告诉您的内容。数据变化很好;这意味着事情的行为会有所不同,具体取决于您是否有索引。但是,没有关于如何呈现优化程序信息的标准化 - 每个DBMS都以不同方式执行。如果您要解释数据,您必须理解它。
查看查询计划很重要。最终,测量实际性能也是如此。这部分取决于你为什么要查看索引。如果您正在解决的感知性能问题,那么显然您需要确保通过添加的索引或索引解决问题。您还需要确保在维护操作(插入,删除,更新操作)上添加索引的成本是不可容忍的 - 您没有添加太多索引。您可能还需要考虑磁盘空间使用情况 - 是否可以为这么多索引提供如此多的磁盘空间。
如果没有关于您的DBMS或特定查询的更多具体信息,很难提供更具体的建议。