Jus*_*ing 3 vendor-support sql-server
我所在的团队开发使用多个 SQL Server 数据库的产品。其中一些大多是只读的。表不会更改,但作为配置应用程序的一种方式,某些视图和存储过程会更改。这些视图缺少索引。它们不是物化视图。对表的更改仅在升级期间发生,并且涉及向客户端发送附加的新 MDF。我应该执行哪些步骤来使这些数据库处于“发货就绪”状态?更新请注意,这些 MDF 中有大量可用空间,因此会收缩,然后重新索引。
我们目前正在做以下工作:
DBCC SHRINKDATABASE在数据库上运行EXECUTE dbo.DatabaseIntegrityCheck
@Databases = 'DB_IN_QUESTION',
@CheckCommands = 'CHECKDB',
@ExtendedLogicalChecks = 'Y',
@TabLock = 'Y'
GO
EXECUTE dbo.IndexOptimize
@Databases = 'DATABASE_IN_QUESTION',
@FragmentationLow = NULL,
@FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationLevel1 = 5,
@FragmentationLevel2 = 30,
@SortInTempdb = 'Y',
@MaxDOP = 0
GO
Run Code Online (Sandbox Code Playgroud)我们应该为 Ola 的脚本使用其他参数吗?我们是否应该采取任何其他措施?将数据库设为只读会很麻烦,因为视图和存储过程经常由最终用户修改。
如果您想分发数据库的副本,为什么不使用 LocalDB?
缩小数据文件会导致非常高的碎片化。运行索引维护会使文件重新增长。你为什么要缩小它?
此外,如果您只打算发送 mdf 文件,为什么要使用 DBCC SHRINKDATABASE?SHRINKDATABASE 为数据库中的每个文件调用 DBCC SHRINKFILE。如果你不传送日志文件,你为什么要缩小它呢?好像是在浪费时间。
不支持仅提供 mdf 文件来共享数据库。始终存在无法重新附加文件的风险。传送备份或至少完整的文件集是传送数据库的最佳方式。
| 归档时间: |
|
| 查看次数: |
725 次 |
| 最近记录: |