C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年11月6日

摘要: SQL Server允许用户手工地控制单独数据库中的统计维护。SQL Server的4个主要的控制紫铜统计的维护的配置如下:在无索引的列上新建统计(自动创建统计);更新现有统计(自动更新统计);用于收集统计的采样度;现有统计的异步更新(自动异步更新统计); 可以在数据库级别(所有表上的所有索引和统计)或基于单个索引或统计情况下来控制上述配置。自动创建统计设置仅适用于非索引列,因为SQL Server在索引创建时始终为一个索引键创建统计。自动更新统计设置的异步版本适用于索引和WHERE子句中没有索引的列。一、自动维护 默认情况下,SQL Server自动处理统计。自动创建统计和自动更新统... 阅读全文
posted @ 2013-11-06 15:05 逆心 阅读(618) 评论(0) 推荐(0) 编辑

摘要: 非索引列上的统计 有时候,可能在连接或过滤条件中的列上没有索引。即使对这种非索引列,如果查询优化器知道这些列的数据分布(统计),它也很可能做出最佳的选择。 除了索引上的统计,SQL Server可以在没有索引的列上建立统计。即使不是索引列,当你开启了SQL Server自动创建统计功能,SQL Server就自动在执行WHERE、JOIN等查询列上创建统计。数据分布的信息或者特定值出现在非索引列上的可能性,都能够帮助查询优化器确定最优的处理策略。即使查询优化器不能真正使用索引来定位这些列,这也仍然对其有利。如果SQL Server确信这些信息对创建更好的计划有利(这通常发生于这些列被用于一.. 阅读全文
posted @ 2013-11-06 14:12 逆心 阅读(643) 评论(0) 推荐(0) 编辑

摘要: 一、索引在查询优化中的角色 SQL Server的查询优化器是基于开销的优化器、它通过确认选择性、数据的唯一性以及过滤数据(通过WHERE或JOIN子句)所使用的列来决定最佳的数据访问机制。统计与索引一同存在,但是它们也作为断言的一部分存在于没有索引的列上。 作为谓词引用的列中数据分布的最新信息帮助优化器确定所使用的查询策略。在SQL Server中,这个信息以统计的形式维护,这对于基于开销的优化器创建一个有效的查询执行计划是很重要的。通过统计,优化器能做出返回结果集或中间结果集所花费时间的精确估计,从而确定最高效的操作。只要确定数据库已经进行了默认的统计设置,优化器就能尽其所能地动态确定.. 阅读全文
posted @ 2013-11-06 14:09 逆心 阅读(1026) 评论(0) 推荐(0) 编辑