【发布时间】:2026-01-23 10:30:01
【问题描述】:
我们正在使用我们的一个生产数据库并在另一台服务器上创建一个副本以用于只读目的。只读数据库位于 SQL Server 2008 上。一旦数据库位于新服务器上,我们希望对其进行优化以供只读使用。
一个问题是为一些未使用的表分配了大量空间。我预计的另一个问题是索引的碎片化。我不确定表碎片是否是一个问题。
涉及哪些问题?解决此问题的最佳方法是什么? SQL Server 中是否包含有帮助的存储过程?我试过运行 DBCC SHRINKDATABASE,但没有释放未使用的空间。
编辑:我用来收缩数据库的确切命令是
DBCC SHRINKDATABASE (dbname, 0)
GO
它运行了几个小时。当我使用 sp_spaceused 检查表空间时,没有释放任何未使用的空间。
【问题讨论】:
-
不指定可用空间,请尝试以下操作:DBCC SHRINKDATABASE (DBName, TRUNCATEONLY);
标签: sql-server performance database-design