我们一直在尝试将许多列从可空更改为不可空,这涉及删除所有关联对象、进行更改并重新创建关联对象。
我们一直在使用 SQL 比较来生成脚本,但我注意到 SQL 比较不会编写统计对象的脚本。这是否意味着可以删除它们并且数据库将像没有它们之前一样工作,或者 Red Gate 错过了一个技巧?
我们一直在尝试将许多列从可空更改为不可空,这涉及删除所有关联对象、进行更改并重新创建关联对象。
我们一直在使用 SQL 比较来生成脚本,但我注意到 SQL 比较不会编写统计对象的脚本。这是否意味着可以删除它们并且数据库将像没有它们之前一样工作,或者 Red Gate 错过了一个技巧?
如果您有更新统计信息并自动创建统计信息,那么它应该像以前一样工作您也可以运行sp_updatestats
或UPDATE STATISTICS WITH FULLSCAN
在您进行更改之后运行
自动创建和自动更新统计信息被认为是最佳实践。Sql Server 将在需要时创建它们。您会经常看到调优向导生成大量此类,并且您还会看到人们建议您将更新统计信息作为维护计划的一部分,但这不是必需的,实际上可能会使事情变得更糟,只要自动创建和自动更新已启用。
你为什么要丢东西?在我看来,序列应该更简单,破坏性更小:为所有这些对象分配一个默认值,然后将更改设置为不可为空。
统计数据过于特定于数据,无法被工具化。在数据集上盲目地重新创建它们可能会非常低效。