Oracle 表空间查询与操作方法 电脑资料
一,
1.查询oracle表空间的使用情况
select b.fileid  文件ID,
b.tablespacename  表空间,
b.filename     物理文件名,
b.bytes       总字节数,
(b.bytes-sum(nvl(a.bytes,0)))   已使用,
sum(nvl(a.bytes,0))        剩余,
oracle数据库怎么查询表sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比
from dbafreespace a,dbadatafiles b
where a.fileid=b.fileid
group by b.tablespacename,b.filename,b.fileid,b.bytes
order by b.tablespacename
2.查询oracle系统用户的默认表空间和临时表空间
select defaulttablespace,temporarytablespace from dbausers
3.查询单张表的使用情况
select segmentname,bytes from dbasegments where segmentname = 'RESTDEVTFACTDAY' and wner = USER
RESTDEVTFACTDAY是您要查询的表名称
4.查询所有用户表使用大小的前三十名
select * from (select segmentname,bytes from dbasegments where wner = USER order by
bytes desc ) where rownum <= 30
5.查询当前用户默认表空间的使用情况
select tablespacename,sum(totalContent),sum(usecontent),sum(sparecontent),avg(sparepercent)
from
(
SELECT b.fileid as id,b.tablespacename 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 dbafreespace a,dbadatafiles b
WHERE a.fileid=b.fileid and b.tablespacename = (select defaulttablespace from dbausers where username = user)
group by b.tablespacename,b.filename,b.fileid,b.bytes
)
GROUP BY tablespacename
6.查询用户表空间的表
select * from usertables
==================================================================================
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);
可从dbatablespaces中查看刚创立的表空间的信息
CREATE UNDO TABLESPACE testundo
DATAFILE 'c:/oracle/oradata/db/testundo.dbf' SIZE 50M
UNDO表空间的EXTENT是由本地的,而且在创立时的SQL语句中只能使用DATAFILE和EXTENT MANAGEMENT子句。
ORACLE规定在任何时刻只能将一个复原表空间赋予数据库,即在一个实例中可以有多个复原表空间存在,但只能有一个为活动的。可以使用ALTER SYSTEM命令进行复原表空间的切换。
SQL> ALTER SYSTEM SET UNDOTABLESPACE = testundo;
CREATE TEMPORARY TABLESPACE testtemp
TEMPFILE '/oracle/oradata/db/testtemp.dbf' SIZE 50M
查看系统当前默认的临时表空间
select * from dbaproperties where propertyname like 'DEFAULT%'
改变系统默认临时表空间
alter database default temporary tablespace testtemp;
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 tablespacename, fileid, filename,
round(bytes/(1024*1024),0) totalspace
from dbadatafiles
order by tablespacename;
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;
设定后可从dbatablespace中查看表空间信息,从v$datafile中查看对应的数据文件信息

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。