摘要:
(似乎更新表和索引的统计信息来解决这个问题) 这个问题困扰了我一段时间,项目中经常会出现很奇怪的情况:如果查询数据库有结果返回,查询过程会非常快;但是如果没有结果,很可能会执行很长一段时间以致超时。今天又遇到了这种情况而且今天还算有时间,我就认真跟踪了一下,发现有数据时,执行计划显示index seek,而没有数据返回时,执行计划显示的是Table scan,我对执行计划认真分析比对,感觉找到了其中的原因。一般好一点的数据库系统都比较智能,他会有一套规则来判断如何执行查询会比较快。对于索引有一个规则是如果join返回的结果数量比较少,查询引擎会选择使用索引来加快速度,但是如果结果数量非常多,应 阅读全文