7

我正在使用 SQL Server,但没有足够的数据集来测试查询的性能。

我想分析查询并查看索引是否被利用。我该如何检查

4

2 回答 2

11

这实际上比看起来更难——一个典型的现代 DBMS(MS SQL Server 也不例外)有时会进行全表扫描,即使索引可用,仅仅是因为在少量数据上可能会更快。1

例子:

更重要的是,DBMS 做出的决定可能会受到统计数据的新鲜/准确程度的影响。

是否使用索引的最可靠测试是简单地用具有代表性的数据量填充您的数据库,然后查看执行计划。并且不要忘记计时查询的实际执行时间!


1一个简化的示例:如果整个表适合单个数据库页面,则简单地加载该页面并按顺序浏览它比等待包含索引的页面的额外 I/O 更快。

于 2013-02-05T23:32:40.373 回答
8

在 SQL Management Studio 中,只需键入查询,然后按 Control-L(显示查询执行计划)。在那里,您将能够看到是否正在使用任何索引。“表扫描”意味着不使用索引。“索引扫描”意味着使用了索引。

于 2013-02-05T22:31:43.460 回答