使用: truncate table tablename DROP STORAGE;
你所需要的网站建设服务,我们均能行业靠前的水平为你提供.标准是产品质量的保证,主要从事成都做网站、网站制作、企业网站建设、手机网站制作、网页设计、品牌网站设计、网页制作、做网站、建网站。创新互联公司拥有实力坚强的技术研发团队及素养的视觉设计专才。
解释: 直接删除表,并且释放存储空间。truncate的意思是清空表数据, “DROP STORAGE”是释放存储空间。
首先不知道你的数据库在什么系统下:
window:
找到数据文件存放的位置,比如D:\存放的是oracle的数据文件,如果表空间采用的是自动管理方式,考虑将一些数据文件移到其他盘符下,比如:e:\等
linux/unix
du -sk * 查看oracle数据库相关文件夹下每个文件的空间使用情况,删除垃圾文件
如果没有垃圾文件,尝试整理表空间,可以释放一些空间,只是暂时解决文件
增加裸设备
如果使用asm的方式管理的,考虑将asm里增加pv。
以上,希望能帮助你!
在Oracle9i里,Oracle提供了一个内部事件,用以强制刷新Buffer Cache。
其语法为:
alter session set events 'immediate trace name flush_cache level 1';
或者:
alter session set events = 'immediate trace name flush_cache';
类似的也可以使用alter system系统级设置:
alter system set events = 'immediate trace name flush_cache';
在Oracle10g中,Oracle提供一个新的特性,可以通过如下命令刷新Buffer Cache:
alter system flush buffer_cache;
ALTER SYSTEM FLUSH SHARED_POOL
这个语句清除SGA中的 shared pool,shared pool存储下面的信息:
1、数据字典
2、Shared SQL PL/SQL,存储过程、函数、包以及触发器
但是有一点要清楚的是假如这些对象正在使用时是无法清除的。
oracle删除表,释放表空间,需要通过truncate table xx,然后drop table xxx 来释放,或者直接通过 drop table xxx purge;
示例如下:
1、创建测试表,
create table test_space(id number, name varchar2(20));
2、插入样例数据,
insert into test_space
select level, 'test_space_'||level
from dual
connect by level100000
3、查看该表存储,占用3145728B大小,
select * from user_segments t where segment_name = upper('test_space');
4、truncate清空表数据,truncate table test_space,然后再次查询表存储,存储变为65536B,已释放;
truncate table test_space;
select * from user_segments t
where segment_name = upper('test_space');
5、把表再次删除后,存储已释放;
drop table test_space;
select bytes from user_segments t
where segment_name = upper('test_space');