一。查询篇 
1.查询oracle表空间的使用情况 
select b.file_id  文件ID, 
  b.tablespace_name  表空间, 
  b.file_name     物理文件名, 
  b.bytes       总字节数, 
  (b.bytes-sum(nvl(a.bytes,0)))   已使用, 
  sum(nvl(a.bytes,0))        剩余, 
  sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比 
  from dba_free_space a,dba_data_files b 
  where a.file_id=b.file_id 
  group by b.tablespace_name,b.file_name,b.file_id,b.bytes 
  order by b.tablespace_name 
2.查询oracle系统用户的默认表空间和临时表空间 
select default_tablespace,temporary_tablespace from dba_users 
3.查询单张表的使用情况 
select segment_name,bytes from dba_segments where segment_name = 'RE_STDEVT_FACT_DAY' and owner = USER 
RE_STDEVT_FACT_DAY是您要查询的表名称 
4.查询所有用户表使用大小的前三十名 
select * from (select segment_name,bytes from dba_segments where owner = USER order by bytes desc ) where rownum <= 30 
5.查询当前用户默认表空间的使用情况 
select tablespacename,sum(totalContent),sum(usecontent),sum(sparecontent),avg(sparepercent) 
from 

SELECT b.file_id as id,b.tablespace_name as tablespacename,b.bytes as totalContent,(b.bytes-sum(nvl(a.bytes,0))) as usecontent,sum(nvl(a.bytes,0)) as sparecontent,sum(nvl(a.bytes,0))/(b.bytes)*100 as sparepercent 
FROM dba_free_space a,dba_data_files b 
WHERE a.file_id=b.file_id and b.tablespace_name = (select default_tablespace from dba_users where username = user) 
group by b.tablespace_name,b.file_name,b.file_id,b.bytes 

GROUP BY tablespacename 
6.查询用户表空间的表 
select * from user_tables 
================================================================================== 
一、建立表空间 
CREATE TABLESPACE test 
DATAFILE 'c:/oracle/oradata/db/test01.dbf' SIZE 50M 
UNIFORM SIZE 1M; #指定区尺寸为128k,如不指定,区尺寸默认为64k 
或 
CREATE TABLESPACE test 
DATAFILE 'c:/oracle/oradata/db/test01.dbf' SIZE 50M 
MINIMUM EXTENT 50K EXTENT MANAGEMENT LOCAL 
DEFAULT STORAGE (INITIAL 50K NEXT 50K MAXEXTENTS 100 PCTINCREASE 0); 
可从dba_tablespaces中查看刚创建的表空间的信息 
二、建立UNDO表空间 
CREATE UNDO TABLESPACE test_undo 
DATAFILE 'c:/oracle/oradata/db/test_undo.dbf' SIZE 50M 
UNDO表空间的EXTENT是由本地管理的,而且在创建时的SQL语句中只能使用DATAFILE和EXTENT MANAGEMENT子句。 
ORACLE规定在任何时刻只能将一个还原表空间赋予数据库,即在一个实例中可以有多个还原表空间存在,但只能有一个为活动的。可以使用ALTER SYSTEM命令进行还原表空间的切换。 
SQL> ALTER SYSTEM SET UNDO_TABLESPACE = test_undo; 
三、建立临时表空间 
CREATE TEMPORARY TABLESPACE test_temp 
TEMPFILE '/oracle/oradata/db/test_temp.dbf' SIZE 50M 
查看系统当前默认的临时表空间 
select * from dba_properties where property_name like 'DEFAULT%' 
改变系统默认临时表空间 
alter database default temporary tablespace test_temp; 
四、改变表空间状态 
1.使表空间脱机 
ALTER TABLESPACE test OFFLINE; 
如果是意外删除了数据文件,则必须带有RECOVER选项 
ALTER TABLESPACE game test FOR RECOVER; 
2.使表空间联机 
ALTER TABLESPACE test ONLINE; 
3.使数据文件脱机 
ALTER DATABASE DATAFILE 3 OFFLINE; 
4.使数据文件联机 
ALTER DATABASE DATAFILE 3 ONLINE; 
5.使表空间只读 
ALTER TABLESPACE test READ ONLY; 
6.使表空间可读写 
ALTER TABLESPACE test READ WRITE; 
五、删除表空间 
DROP TABLESPACE test INCL ING CONTENTS AND DATAFILES CASCADE CONSTRAINTS; 
DROP TABLESPACE 表空间名 [INCL ING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS]] 
1. INCL ING CONTENTS 子句用来删除段 
2. AND DATAFILES 子句用来删除数据文件 
3. CASCADE CONSTRAINTS 子句用来删除所有的引用完整性约束

六、扩展表空间 
首先查看表空间的名字和所属文件 
select tablespace_name, file_id, file_name, 
round(bytes/(1024*1024),0) total_space 
from dba_data_files 
order by tablespace_name; 
1.增加数据文件 
ALTER TABLESPACE test 
ADD DATAFILE '/oracle/oradata/db/test02.dbf' SIZE 1000M; 
2.手动增加数据文件尺寸 
ALTER DATABASE DATAFILE 'c:/oracle/oradata/db/test01.dbf' 
RESIZE 100M; 
3.设定数据文件自动扩展 
ALTER DATABASE DATAFILE 'c:/oracle/oradata/db/test01.dbf' 
AUTOEXTEND ON NEXT 100M 
MAXSIZE 200M; 
设定后可从dba_tablespace中查看表空间信息,从v$datafile中查看对应的数据文件信息 
================================================================================== 
create tablespace scgl 
datafile 'E:\ORACLE\PROD T\10.1.0\ORADATA\ORCL\scgl2.dbf' 
size 50m 
autoextend on 
next 50m maxsize 20480m 
extent management local; 
create tablespace test_data 
logging 
datafile 'E:\ORACLE\PROD T\10.1.0\ORADATA\ORCL\user_data.dbf' 
size 50m 
autoextend on 
next 50m maxsize 20480m 
extent management local; 
create user scgl identified by qwer1234 
default tablespace scgl 
temporary tablespace scgl_temp; 
tempfile 'E:\ORACLE\PROD T\10.1.0\ORADATA\ORCL\user_temp.dbf' 
create temporary tablespace scgl_temp 
tempfile 'E:\ORACLE\PROD T\10.1.0\ORADATA\ORCL\scgl_temp.dbf' 
size 50m 
autoextend on 
next 50m maxsize 20480m 
extent management local; 
grant connect,resource, dba to scgl; 
oracle创建表空间 SYS用户在CMD下以DBA身份登陆: 
在CMD中打sqlplus /nolog 
然后再 
conn / as sysdba 
//创建临时表空间 
create temporary tablespace user_temp 
tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' 
size 50m 
autoextend on 
next 50m maxsize 20480m 
extent management local; 
//创建数据表空间 
create tablespace test_data 
logging 
datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf' 
size 50m 
autoextend on 
next 50m maxsize 20480m 
extent management local; 
//创建用户并指定表空间 
create user username identified by password 
default tablespace user_data 
temporary tablespace user_temp; 
查询表空间使用情况 
SELECT UPPER(F.TABLESPACE_NAME) "表空间名", 
D.TOT_GROOTTE_MB "表空间大小(M)", 
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", 
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比", 
F.TOTAL_BYTES "空闲空间(M)", 
F.MAX_BYTES "最大块(M)" 
FROM (SELECT TABLESPACE_NAME, 
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES, 
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES 
FROM SYS.DBA_FREE_SPACE 
GROUP BY TABLESPACE_NAME) F, 
(SELECT DD.TABLESPACE_NAME, 
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB 
FROM SYS.DBA_DATA_FILES DD 
GROUP BY DD.TABLESPACE_NAME) D 
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME 
ORDER BY 1 
查询表空间的free space 
select tablespace_name, 
count(*) as extends, 
round(sum(bytes) / 1024 / 1024, 2) as MB, 
sum(blocks) as blocks 
from dba_free_space 
group by tablespace_name; 
--查询表空间的总容量 
select tablespace_name, sum(bytes) / 1024 / 1024 as MB 
from dba_data_files 
group by tablespace_name; 
查询表空间使用率 
select total.tablespace_name, 
round(total.MB, 2) as Total_MB, 
round(total.MB - free.MB, 2) as Used_MB, 
round((1 - free.MB / total.MB) * 100, 2) || '%' as Used_Pct 
from (select tablespace_name, sum(bytes) / 1024 / 1024 as MB 
from dba_free_space 
group by tablespace_name) free, 
(select tablespace_name, sum(bytes) / 1024 / 1024 as MB 
from dba_data_files 
group by tablespace_name) total 
where free.tablespace_name = total.tablespace_name; 
----------------------------------------------------------------------------------------------------------------------------- 
1.建立表空间:create tablespace test datafile '/u01/test.dbf' size 10M uniform size 128k 
#指定区尺寸为128k ,块大小为默认8K 
#大文件表空间 create bigfile tablespace big_tbs datafile '/u01/big_tbs.dbf ' size 100G 
2.建非标准表show parameter db alter system set db_2k_cache_size=10M create tablespace test datafile '/u01/test.dbf' size 10M blocksize 2K uniform size 128k 
#常见错误 
SQL> alter system set db_2k_cache_size=2M; alter system set db_2k_cache_size=2M ERROR at line 1: ORA-02097: parameter cannot be modified because specified value is invalid ORA-00384: Insufficient memory to grow cache 
#解决 
SQL> alter system set sga_max_size=400M scope=spfile; SQL> shutdown immediate; SQL> startup SQL> alter system set db_2k_cache_size=10M; System altered. 
3.查看区大小与块大小#区大小 conn y / 123 create table t(i number) tablespace test; Insert into t values(10) select bytes/1024 from user_segments where segment_name=upper('t'); 
#块大小 Show parameter block(默认64K) 
#非标准表空间的blocksize SQL> select * from v$dbfile; SQL> select name,block_size,status from v$datafile; SQL> select block_size from v$datafile where file#=14; 
4.删除表空间drop tablespace test including contents and datafiles 
5.查表空间:#查数据文件 select * from v$dbfile; #所有表空间 select * from v$tablespace; 
#表空间的数据文件 select file_name,tablespace_name from dba_data_files; 
6.建立undo表空间create undo tablespace undotbs01 datafile '/u01/undotbs01.dbf' size 5M; 
#切换到新建的undo表空间 alter system set undo_tablespace=undotbs01; 
7.建立临时表空间create temporary tablespace temp_data tempfile '/u01/temp.db' size 5M; create bigfile temporary tablespace bigtem tempfile '/u01/bigtemp.db' size 5M; 
8.改变表空间状态 
(0.)查看状态 
#表空间状态 select tablespace_name,block_size,status from dba_tablespaces; 
#数据文件状态 select name,block_size,status from v$datafile; 
(1.)表空间脱机alter tablespace test offline 
#如果意外删除了数据文件 alter tablespace test offline for recover 
(2.)表空间联机alter tablespace test online 
(3.)数据文件脱机select * from v$dbfile; alter database datafile 3 offline 
(4.)数据文件联机recover datafile 3; alter database datafile 3 online; 
(5.)使表空间只读alter tablespace test read only 
(6.)使表空间可读写alter tablespace test read write; 
9.扩展表空间#首先查看表空间的名字和所属文件及空间 select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name; #三种扩展方法 
1.alter tablespace test add datafile '/u01/test02.dbf' size 10M(自动加一个datafile) 
2.alter database datafile '/u01/test.dbf' resize 20M; 
3.alter database datafile '/u01/test.dbf' autoextend on next 10M maxsize 1G; 
#设定后查看表空间信息 
select a.tablespace_name,a.bytes total,b.bytes used,c.bytes free,(b.bytes*100)/a.bytes "% used",(c.bytes*100)/a.bytes "% free" from sys.sm$ts_avail a,sys.sm$ts_used b,sys.sm$ts_free c where a.tablespace_name=b.tablespace_name and a.tablespace_name=c.tablespace_name; 
10.移动表空间的数据文件 
#先确定数据文件据在表空间 
SQL>select tablespace_name,file_name from dba_data_files where file_name='/u01/test.dbf'; 
#open状态 
SQL>alter tablespace test offline; SQL>host move /u01/test.dbf /u01/oracle/test.dbf; SQL>alter tablespace test rename datafile '/u01/test.dbf' to '/u01/oracle/test.dbf'; SQL>alter tablespace test offline; 
#mount状态 SQL>shutdown immediate; SQL>startup mount SQL>host move /u01/test.dbf /u01/oracle/test.dbf; SQL>alter database rename file '/u01/test.dbf' to '/u01/oracle/test.dbf'; 
11.表空间和数据文件常用的数据字典与动态性能视图v$dbfile v$datafile dba_segments user_segments dba_data_files v$tablespace dba_tablespaces user_tablespaces 
--查询表空间使用情况 
SELECT UPPER(F.TABLESPACE_NAME) "表空间名", 
D.TOT_GROOTTE_MB "表空间大小(M)", 
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", 
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比", 
F.TOTAL_BYTES "空闲空间(M)", 
F.MAX_BYTES "最大块(M)" 
FROM (SELECT TABLESPACE_NAME, 
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES, 
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES 
FROM SYS.DBA_FREE_SPACE 
GROUP BY TABLESPACE_NAME) F, 
(SELECT DD.TABLESPACE_NAME, 
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB 
FROM SYS.DBA_DATA_FILES DD 
GROUP BY DD.TABLESPACE_NAME) D 
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME 
ORDER BY 1 
--查询表空间的free space 
select tablespace_name, 
count(*) as extends, 
round(sum(bytes) / 1024 / 1024, 2) as MB, 
sum(blocks) as blocks 
from dba_free_space 
group by tablespace_name; 
--查询表空间的总容量 
select tablespace_name, sum(bytes) / 1024 / 1024 as MB 
from dba_data_files 
group by tablespace_name; 
--查询表空间使用率 
select total.tablespace_name, 
round(total.MB, 2) as Total_MB, 
round(total.MB - free.MB, 2) as Used_MB, 
round((1 - free.MB / total.MB) * 100, 2) || '%' as Used_Pct 
from (select tablespace_name, sum(bytes) / 1024 / 1024 as MB 
from dba_free_space 
group by tablespace_name) free, 
(select tablespace_name, sum(bytes) / 1024 / 1024 as MB 
from dba_data_files 
group by tablespace_name) total 
where free.tablespace_name = total.tablespace_name; 
//给用户授予权限 
grant connect,resource to username; 
//以后以该用户登录,创建的任何数据库对象都属于user_temp 和user_data表空间, 
这就不用在每创建一个对象给其指定表空间了 
撤权: 
revoke 权限... from 用户名; 
删除用户命令 
drop user user_name cascade;

建立表空间 
CREATE TABLESPACE data01 
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M 
UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k

删除表空间 
DROP TABLESPACE data01 INCL ING CONTENTS AND DATAFILES; 
一、建立表空间 
CREATE TABLESPACE data01 
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M 
UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k 
二、建立UNDO表空间 
CREATE UNDO TABLESPACE UNDOTBS02 
DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M 
#注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到该表空间: 
ALTER SYSTEM SET undo_tablespace=UNDOTBS02; 
三、建立临时表空间 
CREATE TEMPORARY TABLESPACE temp_data 
TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M 
四、改变表空间状态 
1.使表空间脱机 
ALTER TABLESPACE game OFFLINE; 
如果是意外删除了数据文件,则必须带有RECOVER选项 
ALTER TABLESPACE game OFFLINE FOR RECOVER; 
2.使表空间联机 
ALTER TABLESPACE game ONLINE; 
3.使数据文件脱机 
ALTER DATABASE DATAFILE 3 OFFLINE; 
4.使数据文件联机 
ALTER DATABASE DATAFILE 3 ONLINE; 
5.使表空间只读 
ALTER TABLESPACE game READ ONLY; 
6.使表空间可读写 
ALTER TABLESPACE game READ WRITE; 
五、删除表空间 
DROP TABLESPACE data01 INCL ING CONTENTS AND DATAFILES;

六、扩展表空间 
首先查看表空间的名字和所属文件 
select tablespace_name, file_id, file_name, 
round(bytes/(1024*1024),0) total_space 
from dba_data_files 
order by tablespace_name; 
1.增加数据文件 
ALTER TABLESPACE game 
ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M; 
2.手动增加数据文件尺寸 
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf' 
RESIZE 4000M; 
3.设定数据文件自动扩展 
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf 
AUTOEXTEND ON NEXT 100M 
MAXSIZE 10000M;

设定后查看表空间信息 
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE, 
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE" 
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C

Oracle 表空间查询与操作方法的更多相关文章

  1. ORACLE表空间查询和管理【转】

    红色是自由指定的~~--查询表空间SELECT D.TABLESPACE_NAME,       SPACE "SUM_SPACE(M)",       SPACE - NVL(F ...

  2. oracle表空间查询维护命令大全之中的一个(数据表空间)史上最全

          表空间是数据库的逻辑划分,一个表空间仅仅能属于一个数据库. 全部的数据库对象都存放在建立指定的表空间中.但主要存放的是表, 所以称作表空间.在oracle 数据库中至少存在一个表空间.即S ...

  3. 常用oracle表空间查询语句

    --查询数据库表空间使用情况 select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/ ...

  4. 转: Oracle表空间查询

    1.查询数据库中的表空间名称 1)查询所有表空间 select tablespace_name from dba_tablespaces; select tablespace_name from us ...

  5. oracle表空间查询维护命令大全之二(undo表空间)

    --undo表空间汇总 --查看全部的表空间名字 select name from v$tablespace; --创建新的UNDO表空间,并设置自己主动扩展參数; create undo table ...

  6. oracle表空间查询维护命令大全之三(暂时表空间)史上最全

    --UNDO表空间汇总 --查看全部的表空间名字 SELECT NAME FROM V$TABLESPACE; --创建新的UNDO表空间,并设置自己主动扩展參数; CREATE UNDO TABLE ...

  7. Oracle表和表空间查询

    用户查询 查询和用户相关的数据 创建用户 CREATE USER user IDENTIFIED BY password [DEFAULT TABLESPACE tablespace] [TEMPOR ...

  8. Oracle表空间,用户,用户授权

    一:Oracle表空间 1,Oracle表空间与SQL Server文件组对比 SQL Server的文件组(文件组包括若干MDF,NDF数据文件)对我们来说并不陌生,前段时间我在博客“怎样玩转千万级 ...

  9. Oracle表空间管理

    oracle表空间相关常用命令小结: 1.ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE;              //修改表空间数据文件类型 2.ALT ...

随机推荐

  1. Java序列化(Serialization)

    关于Java的序列化的文章在网上已经够多了,在这里写关于Java序列化的文章是对自己关于这方面的的一种总结,结合以前的开发经验与网上的资料,写了这篇文章,对自己是有着巩固记忆的作用,也希望能够对大家有 ...

  2. UVA 257 Palinwords(hash)题解

    思路:给你字符串,如果他包含至少两个长度大于等于3的回文,并且这些回文不能嵌套(例如aaa嵌套在aaaa,waw嵌套在awawa),如果这个字符串这么牛逼的话,就输出他. 思路:拿到字符串先正序has ...

  3. ACM赛前准备——模板(排版篇)

    ACM赛前准备--模板(排版篇) 更新 前言 效果演示 封面 目录页 模板页(不分栏) 模板页(分栏) 结果文件 快速使用 准备工作 安装TexLive (可选)安装minted包 创建模板 文件结构 ...

  4. Postman模拟json传参

    首先在headers中,设置Content-Type为applicationon/json,如图: 然后再body中,选择raw,写入json数据结构,如图:

  5. Android之第三方平台实现QQ登录和QQ分享

    目前大多数APP都包含了第三方平台的登录,特别是QQ和微信,这篇博客主要讲的是如何实现QQ第三方平台实现QQ登录和分享功能,功能包含: 登录授权登录获取用户信息(昵称,头像,地址等) QQ分享给好友 ...

  6. SGU 131. Hardwood floor 状压dp 难度:2

    131. Hardwood floor time limit per test: 0.25 sec. memory limit per test: 4096 KB The banquet hall o ...

  7. 转载:【Oracle 集群】RAC知识图文详细教程(九)--RAC基本测试与使用

    文章导航 集群概念介绍(一) ORACLE集群概念和原理(二) RAC 工作原理和相关组件(三) 缓存融合技术(四) RAC 特殊问题和实战经验(五) ORACLE 11 G版本2 RAC在LINUX ...

  8. instancetype 与id

    1 .依照cocoa的命名规则,alloc,init这类方法,如果以id为返回类型,会返回类本身的类型,但类方法的返回类型,LLVM(clang)编译器无法判断,也就是说如果       用id作为返 ...

  9. 二、深度解析HTML5之视频播放和音频播放

    一:视频播放 传统的视频音频播放是通过flash插件的形式完成,不是所有的浏览器都安装了flash插件,而且手机端不支持flash,这就导致视频和音频的播放会有很大的麻烦. 于是,HTML5增加音频和 ...

  10. 采用Serverless架构搭建Web应用

    本文会向你介绍一种新的可能,一种无服务器的方案来搭建Web应用.使用这个方案大部分运维方面的问题就不需要你自己操心了,而且也省去运行服务器的费用.本文从无服务的优势与限制两方面带您初识Serverle ...