Oracle,查询表空间所有表、表所在的表空间、用户默认表空间,以及如何缩小表空间

一、查询表空间所有表

select table_name from all_tables where TABLESPACE_NAME='USERS';

二、查询表所在的表空间

select * from user_tables where table_name='PANTAB';

一个数据库由多个表空间构成,表空间由段构成,段由区构成,区由块构成,这样可以提高效率。

三、查询用户默认表空间

select DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users where username='MYTEST'

四、如何缩小表空间

1. 如果是Oracle 10G以后的版本,表空间中支持自动段空间管理(ASSM),可以参考下文:Oracle中shrink space命令详解

2 .如果表空间不支持ASSM,只能用最笨的方法,将数据拷贝出来,然后弃用原表空间,参考下文:Oracle收缩表空间

3. 我还有个简单粗暴的办法:先expdp当前数据库,然后用Database Configuration Assistant删除数据库,重建数据库,最后impdp数据库……这么做,同样可以达到缩小表空间的效果,我的就由10G缩小到1G。具体可以参考:Oracle导入(impdp)比较大的数据,包括创建表空间、创建用户、导入数据等;含expdp及其它

原文地址:https://www.cnblogs.com/nayitian/p/15047940.html