ITPub博客

首页 > 数据库 > Oracle > 我所知道的ORACLE之二(表空间)

我所知道的ORACLE之二(表空间)

Oracle 作者:xpath2009 时间:2013-11-08 21:15:36 0 删除 编辑
表空间TABLESPACE
表空间,顾名思义就是表存放的空间。它是ORACLE中的逻辑概念,对应了硬盘上的一个或者多个数据文件。
ORACLE在创建的时候默认建了几个表空间,有USERS,SYSTEM,TEMP,SYSAUX,UNDOTBS1等。可以在DBA_TABLESPACES表下查找到。

一般开发的时候都是自己建表空间。
建立表空间的语句
CREATE TABLESPACE  ZKY DATAFILE 'D:KY.DBF' SIZE 8M;
还可以将它指定为用户的默认表空间
ALTER USER TEST DEFAULT TABLESPACE ZKY;
在表空间大小不足的时候,可以增加数据文件或者增大数据文件大小。
ALTER TABLESPACE ZKY ADD DATAFILE 'D:KY1.DBF' SIZE 2M;
或者
ALTER DATABASE DATAFILE 'D:KY.DBF' RESIZE 20M;
当不再需要某个数据文件的时候可以删除
ALTER TABLESPACE ZKY DROP DATAFILE 'D:KY1';
当不再需要某个表空间的时候,可以删除
DROP TABLESPACE ZKY INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
此时删除了表空间及表空间的数据文件。

表空间查询操作

1 查询表空间的数据文件
SELECT * FROM DBA_DATA_FILES D WHERE D.TABLESPACE_NAME='ZKY';
2 查询表空间的使用率
SELECT TOTAL.TNAME "表空间名称",
       TOTAL.TOTAL_SIZE "表空间大小(M)",
       TOTAL.TOTAL_SIZE - USED.FREE_SIZE AS "已使用大小(M)",
       USED.FREE_SIZE AS "表空间剩余大小(M)",
       ROUND((TOTAL.TOTAL_SIZE - USED.FREE_SIZE) / TOTAL.TOTAL_SIZE, 4) * 100 AS "表空间使用率(%)"
  FROM (
        -- 表空间数据文件的大小
        SELECT TABLESPACE_NAME AS TNAME,
                ROUND(SUM(USER_BYTES) / (1024 * 1024), 1) AS TOTAL_SIZE
          FROM DBA_DATA_FILES
         GROUP BY TABLESPACE_NAME) TOTAL,
       (
        -- 表空间剩余的大小
        SELECT TABLESPACE_NAME AS TNAME,
                ROUND(SUM(BYTES) / (1024 * 1024), 1) AS FREE_SIZE
          FROM DBA_FREE_SPACE
         GROUP BY TABLESPACE_NAME) USED
 WHERE TOTAL.TNAME = USED.TNAME(+)
 ORDER BY "表空间使用率(%)" DESC;

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21971774/viewspace-1116359/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-06-24