见表时:
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 a20SQL> selectb.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 bwhere a.file_id=b.file_idgroup by b.tablespace_name,b.file_id,b.bytesorder 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 pbwfrom v$filestat A, dba_data_files Bwhere A.file# = B.file_idorder by B.tablespace_name;
如何知道表在表空间中的存储情况?select segment_name,sum(bytes),count(*) ext_quanfrom dba_extentswhere 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_PROPERTIESORACLE应用常见傻瓜问题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列出作为执行表空间及时点恢复的结果而丢失的所有对象.