可以删除sql统计信息吗?

时间:2020-03-05 18:41:38  来源:igfitidea点击:

我们一直在尝试将许多列从可为空更改为不可为空,这涉及到删除所有关联的对象,进行更改并重新创建关联的对象。

我们一直在使用SQL Compare来生成脚本,但是我注意到SQL Compare不会编写统计对象的脚本。这是否意味着可以删除它们,并且数据库可以像没有它们之前一样正常运行,还是让Red Gate错过了窍门?

解决方案

回答

为什么要丢东西?在我看来,序列应该简单得多,破坏性也要小一些:为所有这些对象分配一个默认值,然后将其更改为不可为空。

回答

统计数据太特定于数据而无法使用。在数据集上盲目地重新创建它们可能会非常低效。

回答

如果我们有更新统计信息并在其上自动创建统计信息,则它应该可以像以前一样工作
进行更改后,我们也可以运行" sp_updatestats"或者" UPDATE STATISTICS WITH FULLSCAN"。

回答

自动创建和自动更新统计信息被认为是最佳实践。如果需要,SQL Server将创建它们。我们通常会看到调整向导会生成许多这样的信息,还会看到人们建议我们将统计信息作为维护计划的一部分进行更新,但这不是必须的,并且只要自动创建并自动更新,情况就可能变得更糟。自动更新已启用。