MS SQL 统计信息浅析上篇
统计信息概念 统计信息是一些对象,这些对象包含在表或索引视图中一列或多列中的数据分布有关的统计信息。数据库查询优化器使用这些统计信息来估计查询结果中的基数或行数。 通过这些基数估计,查询优化器可以生成高质量的执行计划。 例如,查询优化器可以使用基数估计选择索引查找运算符而不是耗费更多资源的索引扫描运算符,从而提高查询性能。[参考MSDN] 其实如果你以前没有接触过统计信息,你可以将其看做是数据库为了得到最优的执行计划,统计数据库里面表、索引等对象的一些数据,例如表的记录数、所有列的平均长度、直方图....等一些优化器需要用到的数据信息。SQL查询优化器是一个基于成本的优化器,类似于ORACLE里面的CBO,那么优化器如果要得到成本最低的执行计划,就需要收集获取其生成执行计划的参考依据(统计信息数据) 如果你对这些概念性的东西比较模糊的话,那么为了让你形象的认识一下统计信息,请看下图: 统计信息参数 数据库的统计信息相关参数有三个: 自动创建统计信息(Auto Create Statistics)、自动更新统计信息(Auto Update Statistics)、自动异步更新统计信息(Auto Update Statistics Asynchronously),它们都是数据库级别的。 自动创建统计信息( Auto Create Statistics )