见表时:
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
列出作为执行表空间及时点恢复的结果而丢失的所有对象.