日期:2014-05-18  浏览次数:20459 次

数据量对性能的影响
我最近维护的一个数据库的主要数据表含有1亿1千万条数据左右,19个字段,前几天尝试在所运行的服务器上做了一个非索引列的最大值查询用去了1小时4分,查询效率非常低。后来我把表按年份折分成了7个表,其中最大的一个大约含有2千7百万条数据,我对这个表又做了同样一个非索引列的最大值查询结果只用去了30几秒的时间,第二次再查询就连1秒都用不到了。我想知道的是为什么同样结构的表在查询的时候数据量缩减到原来的1/4,查询效率能有如此之大的提升?在mssqlserver中数据量和查询效率是个什么样的关系?

------解决方案--------------------
第二次查询会使用第一次的执行计划
------解决方案--------------------
表中的数据量会影响执行计划,执行计划重用,缓存,,都有很大关联
------解决方案--------------------
貌似SQLServer有这样的机制,第一次查询完毕后会对查询进行优化处理,第二次第三次查询就在第一次优化的基础上进行
------解决方案--------------------
最好看一下执行计划来确定,我老觉得 已经创建索引了,如果没有索引根本不可能那么快.

看看缓存 
select * from sys.dm_exec_cached_plans
usercount 使用次数