SQL2005删除大量数据压缩后数据库文件未明显变小,怎么回事?

数据库中有一张表数据特别多,特意清理了一下,删除数据前,该表占用1767.383MB,数据297万条记录,整个数据库文件大小2.06G。删除大部分记录后,该表占用925.... 数据库中有一张表数据特别多,特意清理了一下,删除数据前,该表占用1767.383MB,数据297万条记录,整个数据库文件大小2.06G。
删除大部分记录后,该表占用925.953MB,数据55W条,进行了压缩数据库和文件后,仍然有1.88G。
表的占用空间缩小了841MB,但数据库文件却只缩小了180G,剩下的在哪?我要怎么才能彻底的把空间找回来?求助高手帮忙啊
日志文件已经清理了,上面说的数据库文件只是值得MDF文件,日志文件已经清理了
展开
 我来答
17号观察室
推荐于2017-12-16 · TA获得超过5730个赞
知道大有可为答主
回答量:3666
采纳率:66%
帮助的人:1349万
展开全部
呵呵 这个其实就要说到sql的存储机制了 你用的删除命令应该是delete吧
delete删除数据 虽然数据被删除了 但存储数据的空间还在的 这个是不会被删除的
只有truncate 才会删除这些空间
但truncate 删除只能清空 不能加条件

不过你不用担心 delete虽然保留删除数据的空间 但只要以后有数据插进来 就会用到这些空间
如果以后不插数据 那么这些空间就浪费掉了
有问题再问
忻桐古含海
2019-10-27 · TA获得超过4147个赞
知道大有可为答主
回答量:3156
采纳率:28%
帮助的人:160万
展开全部
数据删除了
但空间并没有删除
这个你放心
虽然没有删除
但以后插入的数据会用到此空间的
只有truncate
才会删除空间和数据
但这个不能加条件
如果真要这样做的话
只有把你需要保留的数据转移临时表
清空之后再插回来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuanzai32
2013-05-03 · TA获得超过114个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:117万
展开全部
你是用的delete删除吧,delete是不会立即释放空间的,具体的操作你可以参照
http://www.itpub.net/thread-1620605-3-1.html
这个问题和你的一样,而且很多大师给出了很好的建议,结合你的实际情况取最佳的吧
追问
他们说的是Oracle啊,我要的是SQL2005的操作方法啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sunshine4829
2018-08-17
知道答主
回答量:10
采纳率:50%
帮助的人:6610
展开全部

经过测试可以知道,只有insert和truncate 操作不写入log日志表,为了不丢失数据,可以做一张中间表(表2),步骤如下:

  1. 写trigger,在数据插入表1的时候同时往表2中插入数据,

  2. 记录某个时间点,truncate table  表2,

  3. 再将表1中这个时间点到某个时间段的记录插入到表2,(这个时候,表1一直在插入数据,由trigger写到表2中)

  4. truncate table 表1,

  5. 压缩数据库文件

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cooke1234
2013-05-03 · TA获得超过6861个赞
知道大有可为答主
回答量:4617
采纳率:72%
帮助的人:3586万
展开全部
先截断日志: Backup Log 数据库名字 With NO_Log
再压缩日志文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式