在SQL Server中,何时仅在表列而不是索引上创建统计信息,以及何时创建索引(也会自动创建统计信息)?
答案 0 :(得分:0)
根据documentation,当自动创建统计信息选项为AUTO_CREATE_STATISTICS
为ON
时:
查询优化器在查询中的单个列上创建统计信息 谓词,必要时改进查询计划和查询 性能。这些单列统计信息是在查询时创建的 优化器会编译查询。
因此,至少在以下情况下,您需要手动创建统计信息:
AUTO_CREATE_STATISTICS
是OFF
索引和统计数据不可比。通常,索引比表扫描更有效地访问数据。优化程序需要统计信息才能估计返回的行数。
答案 1 :(得分:0)
当仅向SQL引擎告知数据的分布/基数模式可以帮助它设计更好的执行计划时,统计信息非常有用,其中在告诉数据模式不足和特殊的数据访问结构(即b -tree),以减少数据扫描和滚动。