删除sql统计信息可以吗?
Posted
技术标签:
【中文标题】删除sql统计信息可以吗?【英文标题】:Is it OK to drop sql statistics? 【发布时间】:2010-09-06 10:20:07 【问题描述】:我们一直在尝试将许多列从可空更改为不可空,这涉及删除所有关联对象、进行更改并重新创建关联对象。
我们一直在使用 SQL 比较来生成脚本,但我注意到 SQL 比较不会编写统计对象的脚本。这是否意味着可以删除它们并且数据库将像没有它们之前一样工作,还是 Red Gate 错过了一个技巧?
【问题讨论】:
【参考方案1】:你为什么要丢东西?在我看来,序列应该更简单,破坏性更小:为所有这些对象分配一个默认值,然后将更改设置为不可为空。
【讨论】:
【参考方案2】:统计数据过于特定于数据,无法进行工具化。在数据集上盲目地重新创建它们可能会非常低效。
【讨论】:
【参考方案3】:如果您有更新统计信息和自动创建统计信息,那么它应该像以前一样工作
您也可以在进行更改后运行sp_updatestats
或UPDATE STATISTICS WITH FULLSCAN
【讨论】:
【参考方案4】:自动创建和自动更新统计信息被认为是最佳做法。 Sql Server 将在需要时创建它们。您会经常看到调优向导生成大量此类,并且您还会看到人们建议您将更新统计信息作为维护计划的一部分,但这不是必需的,实际上可能会使事情变得更糟,只要自动创建和自动更新已启用。
【讨论】:
以上是关于删除sql统计信息可以吗?的主要内容,如果未能解决你的问题,请参考以下文章
sql 查询删除InfiniteWP站点历史记录和已删除站点的统计信息。
SQL Server 中的表统计信息会影响 INSERT、UPDATE 性能吗?