oracle11g表空间管理 11G 查询占用空间比较大的表,为什么会有$结尾的表名字

文献1:,字符有格式,需要清理一下
sql语句格式化:
今天发现有一张采样表从1月5号开始不记录数据了,所以想查看一下表空间使用率,在网上零零散散找了很多资料,现在记录如下,也不知道哪一个最准确。还有一个就是网上拷贝的sql代码格式太乱了,不好看,找到一个在线格式化工具。
--查询表空间使用情况
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)"
(SELECT TABLESPACE_NAME,
Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,
Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTES
SYS.DBA_FREE_SPACE
BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB
SYS.DBA_DATA_FILES DD
BY DD.TABLESPACE_NAME) D
D.TABLESPACE_NAME = F.TABLESPACE_NAME
--查询表空间的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_
--查询表空间的总容量
select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_
--查询表空间使用率
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
(SELECT tablespace_name,
Sum(bytes) / 1024 / 1024 AS MB
dba_free_space
BY tablespace_name) free,
(SELECT tablespace_name,
Sum(bytes) / 1024 / 1024 AS MB
dba_data_files
BY tablespace_name) total
free.tablespace_name = total.tablespace_
上述语句查询结果如下图所示:
SELECT a.tablespace_name
"表空间名",
"表空间大小",
"表空间剩余大小",
( total - free )
"表空间使用大小",
Round(( total - free ) / total, 4) * 100 "使用率
(SELECT tablespace_name,
Sum(bytes) free
DBA_FREE_SPACE
BY tablespace_name) a,
(SELECT tablespace_name,
Sum(bytes) total
DBA_DATA_FILES
BY tablespace_name) b
a.tablespace_name = b.tablespace_name
SELECT TABLESPACE_NAME "表空间",
To_char(Round(BYTES / 1024, 2), '99990.00')
To_char(Round(FREE / 1024, 2), '99990.00')
To_char(Round(( BYTES - FREE ) / 1024, 2), '99990.00')
To_char(Round(10000 * USED / BYTES) / 100, '99990.00')
(SELECT A.TABLESPACE_NAME
TABLESPACE_NAME,
Floor(A.BYTES / ( 1024 * 1024 ))
Floor(B.FREE / ( 1024 * 1024 ))
Floor(( A.BYTES - B.FREE ) / ( 1024 * 1024 )) USED
(SELECT TABLESPACE_NAME TABLESPACE_NAME,
Sum(BYTES)
DBA_DATA_FILES
BY TABLESPACE_NAME) A,
(SELECT TABLESPACE_NAME TABLESPACE_NAME,
Sum(BYTES)
DBA_FREE_SPACE
BY TABLESPACE_NAME) B
A.TABLESPACE_NAME = B.TABLESPACE_NAME)
--WHERE TABLESPACE_NAME LIKE 'CDR%' --这一句用于指定表空间名称
BY Floor(10000 * USED / BYTES) DESC;
select tablespace_name,
round(100 * used_gb / max_gb) pct_used
from (select a.tablespace_name tablespace_name,
round((a.bytes_alloc - nvl(b.bytes_free, 0)) / power(2, 30),
2) used_gb,
round(a.maxbytes / power(2, 30), 2) max_gb
from (select f.tablespace_name,
sum(f.bytes) bytes_alloc,
sum(decode(f.autoextensible,
f.maxbytes,
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(+)
select h.tablespace_name tablespace_name,
round(sum(nvl(p.bytes_used, 0)) / power(2, 30), 2) used_gb,
round(sum(decode(f.autoextensible,
f.maxbytes,
f.bytes)) / power(2, 30),
from v$temp_space_header h, v$temp_extent_pool p, dba_temp_files f
where p.file_id(+) = h.file_id
and p.tablespace_name(+) = h.tablespace_name
and f.file_id = h.file_id
and f.tablespace_name = h.tablespace_name
group by h.tablespace_name)
order by 4;
阅读(...) 评论()oracle查询所有表空间的总容量、已经使用、剩余、已经使用的百分比,增加容量!
*环境:linux5 + Oracle10gR2
*某系统出现空间不足,报错!
查询所有表空间的总容量、已经使用、剩余、已经使用的百分比!
select a.tablespace_name,a.bytes/ "Sum
MB",(a.bytes-b.bytes)/ "used MB",b.bytes/ "free
round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"
(select tablespace_name,sum(bytes) bytes from dba_data_files
group by tablespace_name) a,
(select tablespace_name,sum(bytes) bytes,max(bytes) largest
from dba_free_space group by tablespace_name) b
where a.tablespace_name=b.tablespace_name
order by ((a.bytes-b.bytes)/a.bytes) desc
一般来说可以把上面的复杂的查询语句放入一个文件中,需要时再调用,或者创建一个试图,需要时可以查询。
1 &写入文件:#vi
/home/mzl/percent_used_tablespace.sql
select a.tablespace_name,a.bytes/ "Sum
MB",(a.bytes-b.bytes)/ "used MB",b.bytes/ "free
round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"
(select tablespace_name,sum(bytes) bytes from dba_data_files
group by tablespace_name) a,
(select tablespace_name,sum(bytes) bytes,max(bytes) largest
from dba_free_space group by tablespace_name) b
where a.tablespace_name=b.tablespace_name
order by ((a.bytes-b.bytes)/a.bytes) desc
@/home/mzl/percent_used_tablespace.sql
& 1 &select
a.tablespace_name,a.bytes "Sum",a.bytes-b.bytes "used",b.bytes
&round(((a.bytes-b.bytes)/a.bytes)*100,2)
"percent_used"
& 4 &(select
tablespace_name,sum(bytes) bytes from dba_data_files group by
tablespace_name) a,
& 5 &(select
tablespace_name,sum(bytes) bytes,max(bytes) largest from
dba_free_space group by tablespace_name) b
& 6 &where
a.tablespace_name=b.tablespace_name
& 7* order by ((a.bytes-b.bytes)/a.bytes)
TABLESPACE_NAME & &
& & & used
& & & free
percent_used
------------------------------ ---------- ----------
---------- ------------
SYSTEM & &
&3145728 & &
SYSAUX & &
PIONEER_INDX & &
& & &6291456
& &5242880 &
&1048576 & &
UNDOTBS2 & &
PIONEER_DATA & &
& & &8388608
& &6291456 &
&2097152 & &
EXAMPLE & &
USERS & & &
& & 5242880 &
&3473408 &
&1769472 & &
PERFSTAT & &
PIONEER_UNDO & &
& & &7340032
& &1376256 &
&5963776 & &
PAUL & & &
& & &5242880
& & &65536
& &5177344 &
& & & 1.25
WENCHUAN & &
& & & 1.25
11 rows selected.
或者创建视图:
SQL&create view percent
SQL&select a.tablespace_name,a.bytes/
"Sum MB",(a.bytes-b.bytes)/ "used MB",b.bytes/
"free MB",
SQL&round(((a.bytes-b.bytes)/a.bytes)*100,2)
"percent_used"
SQL&(select tablespace_name,sum(bytes) bytes
from dba_data_files group by tablespace_name) a,
SQL&(select tablespace_name,sum(bytes)
bytes,max(bytes) largest from dba_free_space group by
tablespace_name) b
a.tablespace_name=b.tablespace_name
SQL&order by ((a.bytes-b.bytes)/a.bytes)
SQL& select *
TABLESPACE_NAME & &
& &Sum MB &
&used MB & &free
MB percent_used
------------------------------ ---------- ----------
---------- ------------
SYSTEM & &
& & &99.39
SYSAUX & &
239.5625 & &10.4375
PIONEER_INDX & &
UNDOTBS2 & &
& 50 & &39.0625
& &10.9375 &
& & &78.13
PIONEER_DATA & &
EXAMPLE & &
&68.25 & &
&31.75 & &
USERS & & &
& 3.3125 & &
1.6875 & & &
PERFSTAT & &
&500 & 143.8125
& 356.1875 & &
PIONEER_UNDO & &
& & 1.3125 &
& 5.6875 & &
PAUL & & &
& & &.0625
& & 4.9375 &
& & & 1.25
WENCHUAN & &
& &19.75 &
& & & 1.25
11 rows selected.
查看表空间的数据文件是否是自动扩展:
& 1* select
file_name,tablespace_name,autoextensible from dba_data_files
FILE_NAME & &
& TABLESPACE_NAME &
---------------------------------------------
------------------------------ ---
/u01/app/oracle/oradata/orcl/risenet.dbf &
& &RISENET
/u01/app/oracle/oradata/orcl/perfstat.dbf &
& PERFSTAT & &
/u01/app/oracle/oradata/orcl/example01.dbf &
&EXAMPLE & &
/u01/disk1/users01.dbf & &
&USERS & &
/u01/app/oracle/oradata/orcl/sysaux01.dbf &
& SYSAUX & &
/u01/app/oracle/oradata/orcl/undotbs01.dbf &
/u01/disk2/system01.dbf & &
& & & SYSTEM
/u01/app/oracle/oradata/orcl/undotbs02.dbf &
&UNDOTBS2 & &
/u01/disk1/pioneer_data.dbf &
& & PIONEER_DATA
/u01/disk2/pioneer_indx.dbf &
& & PIONEER_INDX
/u01/disk3/pioneer_undo.dbf &
& & PIONEER_UNDO
FILE_NAME & &
& TABLESPACE_NAME &
---------------------------------------------
------------------------------ ---
/u01/app/oracle/oradata/orcl/paul01.dbf &
& & PAUL &
/u01/disk1/wenchuan.dbf & &
& & & WENCHUAN
13 rows selected.
比如表空间PIONEER_INDX已经用了83.33%,数据文件不能自动扩展,可以修改成自动扩展,以免数据写满数据文件。
SQL& alter database
& 2 &datafile
'/u01/disk2/pioneer_indx.dbf' &autoextend
Database altered.
SQL& select
file_name,tablespace_name,autoextensible from dba_data_files
& 2 &where
tablespace_name='PIONEER_INDX';
FILE_NAME & &
& TABLESPACE_NAME &
---------------------------------------------
------------------------------ ---
/u01/disk2/pioneer_indx.dbf &
& & PIONEER_INDX
或者给表空间多加一个自动扩展的数据文件,如果有多个硬盘,可以增加多个数据文件(这样多数据库系统的并发性比较好)
SQL& alter tablespace pioneer_indx
& 2 &add datafile size
Tablespace altered.
SQL& select
file_name,tablespace_name,bytes/ "MB"
&from dba_data_files
& 2 &where
tablespace_name='PIONEER_INDX';
FILE_NAME & &
& TABLESPACE_NAME
---------------------------------------------
------------------------------
----------
/u01/disk2/pioneer_indx.dbf &
& & PIONEER_INDX
/u01/disk5/ORCL/datafile/o1_mf_pioneer__45dpy
PIONEER_INDX
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。oracle 11G 查询占用空间比较大的表,为何会有$结尾的表名字(2) - Oracle管理当前位置:& &&&oracle 11G 查询占用空间比较大的表,为何会有$结尾oracle 11G 查询占用空间比较大的表,为何会有$结尾的表名字(2)&&网友分享于:&&浏览:0次
PLAS&&&&&&&&&&&&&&&&&&&&&&&&&&&BIS_EMAIL_STAT&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&TABLE&&&&&&&&&&&&&&&&&&&&0.33
POWERDESK&&&&&&&&&&&&&&&&&&&&&&BIN$+M+gLdu9P+PgQAB/AQAdPw==$0&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&TABLE&&&&&&&&&&&&&&&&&&&&0.33
POWERDESK&&&&&&&&&&&&&&&&&&&&&&APP_ATTACH_FILE_140506&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&TABLE&&&&&&&&&&&&&&&&&&&&0.33
POWERDESK&&&&&&&&&&&&&&&&&&&&&&RES_APPROVE_HIS&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&TABLE&&&&&&&&&&&&&&&&&&&&0.32
SYS&&&&&&&&&&&&&&&&&&&&&&&&&&&&WRH$_SQL_PLAN&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&TABLE&&&&&&&&&&&&&&&&&&&&0.31
POWERDESK&&&&&&&&&&&&&&&&&&&&&&RES_APPROVE_NODE&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&TABLE&&&&&&&&&&&&&&&&&&&&0.26
POWERDESK&&&&&&&&&&&&&&&&&&&&&&BIN$+M+gLdxKP+PgQAB/AQAdPw==$0&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&TABLE&&&&&&&&&&&&&&&&&&&&0.26
14&rows&selected
比如&&BIN$+M+gLdu9P+PgQAB/AQAdPw==$0&以及&AUD$&是怎么回事啊?
我select又报错如下,查询不到数据呢?
SQL&&select&*&from&AUD$;
select&*&from&AUD$
:&table&or&view&does&not&exist
------解决方案--------------------aud$默认登录审计记录表,如果不用建议关闭,或者移动到其他表空间
参考:关于aud$对象相关处理
---------------------------------------------------------------
提供专业ORACLE技术支持(数据恢复,安装实施,升级迁移,备份容灾,故障诊断,系统优化等)------解决方案--------------------没试过,我的理解应该关闭只是代表不会再有新的记录,之前的记录还是需要手工清理。------解决方案--------------------你可以看看http://zxf261./048 共&2&页:
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有

我要回帖

更多关于 oracle11g表空间管理 的文章

 

随机推荐