数据库优化顾问建议我在我的数据库中创建一堆统计数据。我是SQL n00b的东西,所以这是我第一次遇到这样的生物。在MSDN中的条目有一点钝 - 有人可以解释这到底是什么,为什么这是一个好主意?“创建统计信息”在SQL Server 2005中做什么?
43
A
回答
38
Cost Based Query Optimisation是一种使用直方图和行计数来启发式地估计执行查询计划的成本的技术。当您向SQL Server提交查询时,它会对其进行评估并生成一系列Query Plans,它使用启发式来估计成本。然后它选择最便宜的查询计划。
查询优化器使用统计信息来计算查询计划的成本。如果统计信息丢失或过期,则没有正确的数据来估计计划。在这种情况下,它可以生成适度或非常不理想的查询计划。
SQL Server将(在大多数情况下)自动生成大多数表和索引的统计信息,但您可以补充这些或强制刷新。查询调整向导大概会在查询中发现一些缺少的统计信息或已标识的联接,以便添加统计信息。
3
简而言之,它使您的数据库准备就绪,可以有效地工作。通过准备好的统计数据,您的数据库知道(在需要确定执行计划之前)什么可能是最有效的路线。
2
基本上只是保持SQL更新与你有什么类型的索引,行数等。这有助于SQL更好地估计如何执行您的查询。保持统计数据更新是一件好事。
2
从BOL ...
创建在 提供的列的直方图和相关联的 密度组(集合),或设定 表或索引视图的列。字符串汇总 统计信息也创建在 上构建在char,varchar, varchar(max),nchar,nvarchar, nvarchar(max),text和ntext 列上的统计信息。查询优化器使用这个统计信息来选择 用于检索的最有效计划或更新数据的 。最新的统计数据 允许优化器准确地 评估不同查询计划的成本,并选择一个高质量的计划。
8
优化程序使用统计信息来确定是否为查询使用特定索引。如果没有统计信息,优化程序无法知道有多少行可以匹配给定的条件,导致它必须针对“多行”情况进行优化,这可能不够理想。
相关问题
- 1. 为什么统计信息在SQL Server中如此快速过时?
- 2. 如何检查统计信息是否使用T-SQL在SQL Server 2000数据库中自动创建?
- 3. 自动创建的统计信息没有被Sql Server 2008删除
- 4. 在SQL Server 2005中创建数据库
- 5. 在SQL Server 2005中创建作业
- 6. 在SQL Server中查询大数据集的统计信息?
- 7. 创建Microsoft SQL Server的统计信息时,列顺序是否重要?
- 8. mod_pagespeed输出统计信息,但什么也不做。
- 9. 创建信息系统图
- 10. 如何找出SQL Server表的读写统计信息?
- 11. SQL Server性能和更新统计信息
- 12. 如何在SQL Server 2005 Management Studio中创建SQL Server 2005存储过程模板?
- 13. 您多久更新SQL Server 2000中的统计信息?
- 14. SQL Server 2005审计
- 15. 在sql server 2005和sql server 2008中,SCHEMA有什么区别?
- 16. 如何从SQL Server收集统计信息?
- 17. 在MATLAB中创建虚拟集以获得统计信息
- 18. SQL Server统计
- 19. 这是什么意思在SQL Server 2005
- 20. 计算SQL Server 2005中的统计模式
- 21. xp_qv在SQL Server中做什么?
- 22. OBJECT_ID在SQL Server中做什么?
- 23. 通过ODBC的Microsoft SQL Server统计信息
- 24. 客户端统计信息表(Microsoft SQL Server Management Studio)
- 25. SQL Server没有表变量的统计信息?
- 26. SQL Server是否支持几何列的统计信息?
- 27. SQL Server(2012+)执行的过程统计信息
- 28. SQL Server IO统计信息中导致高扫描计数的原因是什么?
- 29. SQL Server PerfMon计数器详细信息
- 30. SQL Server 2008:在不同的数据库中重新创建相同的索引和统计信息
最后一段在技术上的确如此正确:SQL Server不会自动创建一个持久索引(即`CREATE INDEX`),但它可以在“索引假脱机”中缓存一些数据,但这些数据不会在不同的查询执行之间共享。查看此QA:http://dba.stackexchange.com/questions/43772/why-dont-databases-create-their-own-indexes-automatically – Dai 2016-04-27 22:33:44