SQL2000 数据库页拆分问题请教

chos2006 2009-04-01 12:30:40
最近我在做一个软件升级时,遇到了一个难题,情况是这样的:
软件升级时,需要同时升级数据库,其中有一张日志表,升级前大概8列,其中有一列是时间类型的,在上面有个聚集索引,升级时添加两列.
升级时该表中有很多数据,650多万条记录,占用2G多的空间,由于建表时没有指定一个合适的填充因子,导致在升级时,发生了页拆分现象,升级后该表占用空间成倍增加,事实上这样的表不只一张,有31张,但也不是每张表都会有这么多数据,大概3到4张表有这么多的数据,由于磁盘空间有限,升级时会因空间不足而失败.没有办法在现场通过添加磁盘的方法解决问题.

尝试过以下方法:
1,先重建聚集索引指定一个合适的填充因子,再升级.重建索引的过程中,磁盘空间也会大量增加,跟直接升级增加空间差不多,而且升级时间会更长;
2,先删除聚集索引,然后升级,升级完成后,再建聚集索引,情况跟第一种方法相似;
3,先将升级的表改名,然后使用INSERT FROM将数据插入,单独对一张表升级,花了41分钟后,因SQL的日志空间不足失败;而且时间上也不能接受;

请教各位专家给我指明方向,不胜感激!
...全文
88 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chos2006 2009-04-02
  • 打赏
  • 举报
回复
呵呵,这个问题我已经通过SQL的数据导出导入工具bcp解决了.
chos2006 2009-04-01
  • 打赏
  • 举报
回复
SQL的日志到不会很多,而且SQL的日志跟数据库文件在不同的磁盘上.
jinjazz 2009-04-01
  • 打赏
  • 举报
回复
把SQL的日志空间设置为不限制 ,每次备份之后 清理日志就可以了。

程序日志这东西,本来就应该搞一块专门的硬盘,建一个专门的数据库来存储。他的备份方案和敏感的业务数据肯定是不一样的,日志的重点是海量分析,这两样东西放在一起会互相拖累的。

22,209

社区成员

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

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