社区
基础和管理
帖子详情
用Drop table(100000条记录)后磁盘可用空间没增大?怎样真正删除,以增大磁盘可用空间?
lingchenyidian
2008-04-09 01:55:06
如题
...全文
786
22
打赏
收藏
用Drop table(100000条记录)后磁盘可用空间没增大?怎样真正删除,以增大磁盘可用空间?
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lingchenyidian
2008-05-16
打赏
举报
回复
比较趋向:alter database datafile 'your_file_path\file_name' resize xxxxM;
谢过各位参与,散分了..
UltraBejing
2008-05-01
打赏
举报
回复
不知,帮顶
meiZiNick
2008-05-01
打赏
举报
回复
等待牛人来答.
flycbx
2008-04-23
打赏
举报
回复
菜鸟学习了!
ll1314110
2008-04-22
打赏
举报
回复
菜鸟学习了!
hdevil
2008-04-21
打赏
举报
回复
需要的是磁盘空间
alter database datafile 'your_file_path\file_name' resize xxxxM;
jackiecheng001
2008-04-21
打赏
举报
回复
如果全表数据删除 ,建议用truncate table xx 这样程序会把该表磁盘空间复位,
doer_ljy
2008-04-21
打赏
举报
回复
[Quote=引用 16 楼 hdevil 的回复:]
需要的是磁盘空间
alter database datafile 'your_file_path\file_name' resize xxxxM;
[/Quote]
正解,既然已经删掉了那个表了,就只好resize一下datafile了。
truncate本身只能回缩表空间占用,不能回缩HWM。
回缩数据文件对磁盘占用的方法有修改datafile大小(如上),和把一些数据对象移动到其他表空间(Move)。
fangming
2008-04-18
打赏
举报
回复
如果该表所有的数据都不要了的话就用
truncate tableName;
senjor
2008-04-11
打赏
举报
回复
用TRUNCATE TABLE 表名
TRUNCATE TABLE 表名;因为用DROP TABLE,DELETE * FROM 表名时,TABLESPACE表空间该表的占用空间并未释放,反复几次DROP,DELETE操作后,该TABLESPACE上百兆的空间就被耗光了。
lingchenyidian
2008-04-10
打赏
举报
回复
原因已知道,不需重复。
要怎样删除表空间?是主要问题,要怎样做呢?我用了purge recyclebin;但也没见效。
ruihuahan
2008-04-10
打赏
举报
回复
可以通过修改数据文件的大小来回收空间
alter database datafile 'your_file_path\file_name' resize xxxxM;
Lt_smile
2008-04-10
打赏
举报
回复
3L
richard_2010
2008-04-09
打赏
举报
回复
3楼回答好像是对的啊
vc555
2008-04-09
打赏
举报
回复
你磁盘可用空间没增大,是因为表空间的大小没变。你只删除表,表空间又没变,所以磁盘可用空间没增大。
Liubinglin
2008-04-09
打赏
举报
回复
你直接在em工具中编辑表空间,把数据文件的大小改小就可以三,只要改后的大小大于现在表空间中数据占用的大小就OK
lingchenyidian
2008-04-09
打赏
举报
回复
我需要的是磁盘空间。请高人指点下该怎么做啊
rockfeng
2008-04-09
打赏
举报
回复
truncate,delete,drop的比较.
注意:这里说的delete是指不带where子句的delete语句
相同点:truncate和不带where子句的delete, 以及drop都会删除表内的数据
不同点:
1. truncate和 delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
2.delete语句是DML,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.
truncate,drop是DDL, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动
显然drop语句将表所占用的空间全部释放
truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage; truncate会将高水线复位(回到最开始).
4.速度,一般来说: drop> truncate > delete
5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及
使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.
想删除表,当然用drop
想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据
lingchenyidian
2008-04-09
打赏
举报
回复
目前已经drop table A
怎样释放A占用的空间?
小兽
2008-04-09
打赏
举报
回复
其实空间是已经释放了的,只不过由于高水位线的缘故,看起来仍然被占用。
如果想彻底删除并一次释放空间,可以加上PURGE选项。
drop table xxx PURGE;
加载更多回复(2)
SQL Server查詢
可用
磁盘
空间
SQL Server查詢
可用
磁盘
空间
,在数据库应用中的小技巧,希望对大家有用。
oracle 在
删除
表,表
空间
,用户时 如何释放
磁盘
空间
.docx
。
oracle 在
删除
表,表
空间
,用户时 如何释放
磁盘
空间
.pdf
。
delete、truncate、
drop
的区别以及该如何选择
前言 上周同事小姐姐问我:“哈哥你看,我发现MySQL有bug,我下午为了清理
磁盘
,明明
删除
了100万
条
MySQL数据,
磁盘
不仅
没
有变小,反而更满了呢??” 那你是怎么
删除
的? “delete from
table
呀” “怪不得,其实要
删除
MySQL数据是有好几种方式的,有些场景下是不应该用DELETE的,比如你这种情况。好了,让我来给你讲一下吧。” MySQL
删除
数据的方式都有哪些? 咱们常用的三种
删除
方式:通过 delete、truncate、
drop
关键字进行
删除
;这三种都可以用来
删除
数据,但场景不同。 一、从执行速度上来说
drop
> truncate >> DELETE 二
mysql
drop
table
释放
空间
_MySQL
删除
数据几种情况以及是否释放
磁盘
空间
【转】
MySQL
删除
数据几种情况以及是否释放
磁盘
空间
:1、
drop
table
table
_name 立刻释放
磁盘
空间
,不管是 Innodb和MyISAM ;2、truncate
table
table
_name 立刻释放
磁盘
空间
,不管是 Innodb和MyISAM 。truncate
table
其实有点类似于
drop
table
然后creat,只不过这个create
table
的过程做了优化,...
基础和管理
17,378
社区成员
95,113
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章