赛迪网 > IT技术 数据库 > 精彩更新
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Oracle数据库维护常用SQL语句集合(2)

发布时间:2008.07.02 05:11     来源:赛迪网    作者:韩东

【赛迪网-IT技术报道】空间状态相关内容

1、查看表空间的名称及大小

SELECT t.Tablespace_Name, Round(SUM(Bytes / (1024 * 1024)), 0) Ts_Size

FROM Dba_Tablespaces t, Dba_Data_Files d

WHERE t.Tablespace_Name = d.Tablespace_Name

GROUP BY t.Tablespace_Name;

2、查看表空间物理文件的名称及大小

SELECT Tablespace_Name, File_Id, File_Name,

Round(Bytes / (1024 * 1024), 0) Total_Space

FROM Dba_Data_Files

ORDER BY Tablespace_Name;

3、求表空间的未用空间

col mbytes format 9999.9999

SELECT Tablespace_Name, SUM(Bytes) / 1024 / 1024 Mbytes

FROM Dba_Free_Space

GROUP BY Tablespace_Name;

4、察看数据库的大小,和空间使用情况

SELECT SUM(Bytes) / (1024 * 1024) AS Free_Space, Tablespace_Name

FROM Dba_Free_Space

GROUP BY Tablespace_Name;

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;

5、查看表空间的文件使用情况

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   

--/   dba_Free_Space --表空间剩余空间状况

--   dba_Data_Files --数据文件空间占用情况

6、 查询表空间的碎片程度

SELECT Tablespace_Name, COUNT(Tablespace_Name)

FROM Dba_Free_Space

GROUP BY Tablespace_Name

HAVING COUNT(Tablespace_Name) > 10;

alter tablespace name coalesce;

alter table name deallocate unused;

create or replace view ts_blocks_v as

SELECT Tablespace_Name, Block_Id, Bytes, Blocks, 'free space' Segment_Name

FROM Dba_Free_Space

UNION ALL

SELECT Tablespace_Name, Block_Id, Bytes, Blocks, Segment_Name

FROM Dba_Extents;

select * from ts_blocks_v;

SELECT Tablespace_Name, SUM(Bytes), MAX(Bytes), COUNT(Block_Id)

FROM Dba_Free_Space

GROUP BY Tablespace_Name;

(责任编辑:卢兆林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· Oracle数据库维护常用SQL语句集合(1) (06-30) · 用SQL语句完成SQL Server数据库的修复 (06-25)
· Caché与Oracle在数据仓库应用中的比较 (06-25) · 使用全文索引根据表名查找SQL语句的功能 (06-24)
· Oracle初级用户必须了解的ORA-01034错误 (06-24) · DBA:巧用ora2html收集Oracle数据库信息 (06-24)
· 讲解杀死Oracle数据库死锁进程的具体方法 (06-23) · Oracle的三种备份方式具有不同的恢复特性 (06-13)
· 讲解Oracle数据库逐渐增大时的归档处理 (06-12) · 讲解Oracle数据库几种不使用索引的情况 (06-12)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 信息化市场百家争鸣 SaaS深陷争议“泥潭”
· 提高管理水平 "两栖"CIO应具备的六大能力
· 国产ITIL运维先行者 四大厂商角力BI市场
· 金融行业GSN专题解决方案 企业网解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统