Gai*_*ter 5 sql database sql-server database-design
我使用的是SQL Server,但我没有足够的数据集来测试查询的性能.
我想分析查询并查看索引是否有效.我怎么检查呢
在SQL Management Studio中,只需键入查询,然后单击Control-L(显示查询执行计划).在那里,您将能够看到是否正在使用任何索引."表扫描"表示不使用索引."索引扫描"表示使用索引.
这实际上比它看起来更难 - 典型的现代DBMS(和MS SQL Server也不例外)有时会进行全表扫描,即使索引可用,只是因为在少量数据上可能会更快.1
例:
索引可以满足此SQL Fiddle示例中的最后一个语句,但查询计划明确指出了表扫描:

但是如果我们插入一些数据,则使用索引:

更重要的是,DBMS做出的决定可能会受到统计数据的新鲜/准确程度的影响.
该指数是否使用最可靠的测试是简单地用填充数据库代表的数据和再看看执行计划.并且不要忘记计时查询的实际执行时间!
1一个简化的示例:如果整个表适合单个数据库页面,那么简单地加载该页面并按顺序执行它比单独等待包含索引的页面的附加I/O更快.
| 归档时间: |
|
| 查看次数: |
4350 次 |
| 最近记录: |