我们有一个每周维护计划来缩小所有用户数据库并重建它们的索引。在我们创建只读数据库之前,这一直工作正常,现在每次计划运行时,由于其只读状态,它在开始处理该数据库时都会失败。
据我所见,我们有两个选项从数据库中删除只读标志,这是可能的,但由于数据库仅每季度更新一次,从性能的角度来看,使用只读功能是有意义的. 或者手动选择计划应该运行的数据库,即除了只读数据库之外的所有用户数据库,这需要人们记住将任何新数据库添加到计划中。
有没有人有更好的方法来做这件事的建议?
谢谢
尼尔
我们有一个每周维护计划来缩小所有用户数据库并重建它们的索引。在我们创建只读数据库之前,这一直工作正常,现在每次计划运行时,由于其只读状态,它在开始处理该数据库时都会失败。
据我所见,我们有两个选项从数据库中删除只读标志,这是可能的,但由于数据库仅每季度更新一次,从性能的角度来看,使用只读功能是有意义的. 或者手动选择计划应该运行的数据库,即除了只读数据库之外的所有用户数据库,这需要人们记住将任何新数据库添加到计划中。
有没有人有更好的方法来做这件事的建议?
谢谢
尼尔
为什么你首先要缩小数据库?也没有必要像那样维护只读数据库。
如果您不想自定义维护计划,我会删除只读标志。
你为什么还要缩小数据库?如果数据库增长到给定大小,那么这可能是它的自然当前大小。
还要记住,索引重建(经验法则)需要目标表大小的 120% 的可用空间。例如,500 MB 表需要 600 MB 可用空间。
缩小然后重建是没有意义的......而且你也会有可怕的文件碎片
我想可以修改维护计划以从“执行 T-SQL 语句”步骤开始,该步骤删除只读标志 ( ALTER DATABASE database-name SET READ_WRITE
) 并添加最后一步来重置它: ALTER DATABASE database-name SET READ_ONLY