Linux论坛's Archiver

《开源》旗舰电子杂志2008年11期发布,火热下载中!

Flyinmorning 发表于 2007-12-11 09:13

Oracle表空间小知识

Oracle表空间,底层以data_file文件形式存放,可以定义一个数据库能打开多少个数据文件,一个表空间可以有1到多个数据文件,一个数据文件只能隶属于一个表空间。

         见表时:

1、指定表空间 2、指定扩展大小

普通表只能建在一个表空间,分区表可以建在多个表空间上。



delete只能删除数据,还占着表空间,用truncate命令,但truncate没有条件。



如何将表移动表空间?
ALTER TABLE TABLE_NAME MOVE TABLESPACE_NAME;



如何将索引移动表空间?
ALTER INDEX INDEX_NAME REBUILD TABLESPACE TABLESPACE_NAME;



查询表空间信息?
SELECT * FROM DBA_DATA_FILES;



如何查看各个表空间占用磁盘情况?
SQL> col tablespace format a20
SQL> select
b.file_id 文件ID号,
b.tablespace_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_id,b.bytes
order by b.file_id



事务要求的回滚段空间不够,表现为表空间用满(ORA-01560错误),回滚
段扩展到达参数MAXEXTENTS的值(ORA-01628)的解决办法.
向回滚段表空间添加文件或使已有的文件变大;增加MAXEXTENTS的值。



如何监控表空间的I/O 比例?
select B.tablespace_name name,B.file_name "file",A.phyrds pyr,
A.phyblkrd pbr,A.phywrts pyw, A.phyblkwrt pbw
from v$filestat A, dba_data_files B
where A.file# = B.file_id
order by B.tablespace_name;



如何知道表在表空间中的存储情况?
select segment_name,sum(bytes),count(*) ext_quan
from dba_extents
where tablespace_name='&tablespace_name' and segment_type='TABLE'
group by tablespace_name,segment_name;



如何知道索引在表空间中的存储情况?
select segment_name,count(*)
from dba_extents where segment_type='INDEX' and owner='&owner'
group by segment_name;





DBA_TABLESPACES
所有表空间的描述.

V$TABLESPACE
控制文件中表空间的信息



V$TEMP_EXTENT_MAP
显示所有临时表空间的每一个单元的状态信息.



V$TEMP_SPACE_HEADER
显示每一个临时表空间中每一个文件的聚集信息,涉及每个空间首部中当前
使用多少空间和有多少自由空间.



USER_TABLESPACES
可存取的表空间的描述.



USER_TS_QUOTAS
用户的表空间限额.


DATABASE_PROPERTIES
ORACLE应用常见傻瓜问题1000问
列出当前缺省的临时表空间的名称.





DBA_FREE_SPACE
列出所有表空间中的空闲分区.



DBA_FREE_SPACE_COALESCED
包含表空间中合并空间的统计数据



DBA_TS_QUOTAS
所有用户的表空间的限额.



DBA_UNDO_EXTENTS
在撤消表空间的每个范围的提交时间.



USER_FREE_SPACE
用户可存取表空间中的空闲范围.



TS_PITR_CHECK
提供可能禁止表空间及时点恢复继续的依赖或约束信息



TS_PITR_OBJECTS_TO_BE_DROPPED
列出作为执行表空间及时点恢复的结果而丢失的所有对象.

[[i] 本帖最后由 Flyinmorning 于 2007-12-11 09:17 编辑 [/i]]

luhuayan 发表于 2007-12-13 18:09

不错,学到了一些

flyingfox007 发表于 2007-12-26 22:50

基础入门文章,不错!

9命怪猫 发表于 2008-4-7 10:24

Thanks "Flyinmorning" for sharing knowledge~
long time no using Oracle, I've forgot too much. it's your information evoke my passion on that old friend.

锅盖头 发表于 2008-4-9 13:41

谢谢  呵呵

linuxstudent 发表于 2008-10-7 15:04

学习了!谢谢

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.