重建索引,数据库异常增大。

zxlkxy 2012-06-03 08:53:25
我的SQL2005,没有打补丁。在维护计划里面给整个数据库重建索引以后,MDF文件增加很大。数据库从30G经过2,3次重建,增加到110多G,日志文件并不大。每重建一次索引,数据库就增大一次,而且无法收缩回去。
各位老大有碰到这种情况没有?
...全文
599 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxlkxy 2012-06-22
  • 打赏
  • 举报
回复
基本确定是磁盘碎片引起的。在存储上划一个新的分区,停掉SQL把数据文件拷贝过去,换一个磁盘号,重新启动SQL,重建索引,收缩数据库,问题解决。谢谢各位。
mabaoyes 2012-06-05
  • 打赏
  • 举报
回复
重建表,把数据复制到新表,删除旧表!
mayuanf 2012-06-04
  • 打赏
  • 举报
回复
参考
http://download.microsoft.com/download/D/9/4/D948F981-926E-40FA-A026-5BFCF076D9B9/TEMPDB_Capacity_Planning_Index.doc
mayuanf 2012-06-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 5 楼 的回复:

你rebuild index是online index rebuild吗?


维护计划里面,用联机模式的。online index rebuild
[/Quote]
我的理解,online rebuild index为了保证你在rebuild index的时候,其他的transcation还可以继续使用index,所以会创建一个index的copy,造成了数据库文件的增大。
如果你rebuild index的时候不会有其他连接使用这个index(比如每天凌晨rebuild),可以考虑不用online模式。
如果你这个db同时使用的很多,也找不到idle的时间段,试试对index设置 SORT_IN_TEMP = ON,这个会让sort等操作在tempdb上进行而不是index所在的db上进行。
zxlkxy 2012-06-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

是不是磁盘的碎片太多造成的。
[/Quote]

我是在存储里面的哦,存储需要整理碎片吗?
zxlkxy 2012-06-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

你rebuild index是online index rebuild吗?
[/Quote]

维护计划里面,用联机模式的。online index rebuild
Rotel-刘志东 2012-06-04
  • 打赏
  • 举报
回复
是不是磁盘的碎片太多造成的。
mayuanf 2012-06-04
  • 打赏
  • 举报
回复
你rebuild index是online index rebuild吗?
zxlkxy 2012-06-04
  • 打赏
  • 举报
回复
这个没有人能碰到过吗?
發糞塗牆 2012-06-04
  • 打赏
  • 举报
回复
一般来说这种情况比较少,有可能是碎片问题。而且重建索引是要更新统计信息的,所以如果你索引不合理,统计信息会增加很多。再者,聚集索引(聚簇索引)不同书籍不同翻译。是直接存放数据的,所以如果过多、不合理,那么数据量也会增大。
zxlkxy 2012-06-03
  • 打赏
  • 举报
回复
60多G,重建2次索引以后,变成110多G了。晕死了。
zxlkxy 2012-06-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

检查sqlserver一下日志文件,做过什么样的操作。
[/Quote]

就是重建索引呀。重建一次,增大一次。不能收缩。
Rotel-刘志东 2012-06-03
  • 打赏
  • 举报
回复
检查sqlserver一下日志文件,做过什么样的操作。

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧