我有一个查询,返回的结果非常快,几秒钟。但是,当我想获取所有行时,需要花费几个小时。
如果我对查询运行多长时间的定义是获取所有行,那么除了实际获取所有行之外,如何衡量这一点?
所有行上的select count (*)
是否可以很好地指示获取所有行需要多长时间?
答案 0 :(得分:0)
select count(*)可能会进行表扫描以返回记录总数。
根据表中的内容及其索引方式,count(*)最有可能比运行select *更快返回
您可以通过使用on set statistics time和on on io在表上运行一些基线。
我还建议您使用客户端统计信息运行。
此外,尝试在启用上述功能的情况下运行前100、1000、10000。
当我进行性能调整时,我希望查看实际的执行计划和估计的执行计划