oracle中表空间的使用情况脚本

  1. select a.tablespace_name "tbsname", 100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) "ratio",
           round(a.bytes_alloc/1024/1024,2) "size(M)", round(nvl(b.bytes_free,0)/1024/1024,2) "free(M)",
           round((a.bytes_alloc-nvl(b.bytes_free,0))/1024/1024,2) "usedM)", to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘) "get_time"
     from (
           select f.tablespace_name, sum(f.bytes) bytes_alloc, sum(decode(f.autoextensible,‘YES‘,f.maxbytes,‘NO‘,f.bytes)) maxbytes
             from dba_data_files f
            group by tablespace_name) a,
          (select f.tablespace_name, sum(f.bytes) bytes_free
             from dba_free_space f
            group by tablespace_name) b
    where a.tablespace_name = b.tablespace_name
    order by 2;

2.

SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS
SUM_BLOCKS,SPACE-NVL(FREE_SPACE,0) "USED_SPACE(M)",
ROUND((1-NVL(FREE_SPACE,0)/SPACE)*100,2) "USED_RATE(%)",FREE_SPACE
"FREE_SPACE(M)"
FROM
(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2)
SPACE,SUM(BLOCKS) BLOCKS
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) D,
(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) FREE_SPACE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
UNION ALL --if have tempfile
SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,
USED_SPACE "USED_SPACE(M)",ROUND(NVL(USED_SPACE,0)/SPACE*100,2)
"USED_RATE(%)",
NVL(FREE_SPACE,0) "FREE_SPACE(M)"
FROM
(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2)
SPACE,SUM(BLOCKS) BLOCKS
FROM DBA_TEMP_FILES
GROUP BY TABLESPACE_NAME) D,
(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES_USED)/(1024*1024),2)
USED_SPACE,
ROUND(SUM(BYTES_FREE)/(1024*1024),2) FREE_SPACE
FROM V$TEMP_SPACE_HEADER
GROUP BY TABLESPACE_NAME) F
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)

时间: 2024-10-05 11:45:05

oracle中表空间的使用情况脚本的相关文章

Oracle 表空间查询与操作方法

一.查询篇 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 

oracle 查询表的大小,表空间的使用情况,默认表空间

oracle 查询表的大小,表空间的使用情况,默认表空间 oracle 查询表的大小,表空间的使用情况,默认表空间 --查看某张表占用磁盘空间大小 ( 表名大写 ) Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name having Segment_Name='表名'; 查看用户默认表空是那个 select username,default_tablespace from dba_user

[oracle]表空间情况查看、占用、扩容、使用情况、空间维护等操作

--查询表空间使用情况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

查询Oracle表空间使用情况

1 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

查看Oracle表空间以及其对应用户情况

Oracle中一个表空间可能存在多个用户使用,下面语句统计了表空间及其用户情况,如果有多个用户,用户之间通过逗号分隔. select t.default_tablespace, to_char(wmsys.wm_concat(username)) all_users from dba_users t group by t.default_tablespace; 显示结果如下: 可以对结果根据用户创建的时间排序(如果多用户取第一个用户创建时间),语句如下: select t.default_tab

oracle 临时表空间使用情况

今天用户那边执行一个很简单的SQL,输出结果集也才几万条,涉及三表,最大也才100万数据量,结果却报了表空间不足的情况,理论来说,这样的SQL怎么也不应该吃这么多临时表空间. 查询临时表空间的使用情况: select USERNAME,SESSION_NUM,SQL_ID,TABLESPACE,SEGTYPE,BLOCKS*8192/1024/1024||' MB' as MB from v$sort_usage order by 6 desc v$sort_usage显示给定实例的每个排序段的

三、查看Oracle表空间使用情况

1.查询表空间的总容量 select a.TABLESPACE_NAME, sum(a.BYTES) / 1024 / 1024 as MB from sys.dba_data_files a group by a.TABLESPACE_NAME 2.查询表空间的空闲容量 select b.TABLESPACE_NAME, count(1) as extends, sum(b.BYTES) / 1024 / 1024 as MB, sum(b.BLOCKS) as blocks from sys

linux下创建oracle表空间

来自:http://blog.sina.com.cn/s/blog_62192aed01018aep.html 1 . 登录服务器 2 . 查看磁盘空间是否够大df -h -h更具目前磁盘空间和使用情况 以更易读的方式显示 [[email protected] ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 2.9G 2.3G 521M 82% / none 209M 0 209M 0% /dev/shm /dev/s

Oracle 11g R2 RAC RMAN备份脚本示例

一.将RAC切换成归档模式 1. 修改数据库的归档模式,通常在安装RAC的时候都会配置归档并且使用闪回区,已经配置过归档下面的方式可以略过. SQL> alter system set cluster_database=false scope=spfile sid='*'; 2. 关闭所有实例(两边都要shutdown) SQL> shutdown immediate 或直接关闭所有实例   $ srvctl stop database -d orcl 3. 在任意一个实例上将数据库启动到mo