Oracle 数据库表空间转移(表、试图、索引、CLOB字段)


--1:移动【表】所在表空间:如将表table_name 移动到新的new_tbsp表空间
alter table  table_name move tablespace new_tbsp;

--生成指定tbsp_name表空间下的【所有表】生成移动new_tbsp表空间SQL语句
select 'alter table '|| table_name|| ' move tablespace new_tbsp;' from user_tables where tablespace_name = 'tbsp_name'


--2:移动【索引】所在表空间:如将索引index_name 移动到新的new_tbsp表空间(LOB数据类型的字段需按如下第3类处理)
alter index index_name rebuild tablespace new_tbsp;

--生成指定user_name用户下的【所有索引】生成移动new_tbsp表空间SQL语句
select 'alter index '||index_name||' rebuild tablespace new_tbsp;' from user_indexes where table_owner = 'user_name' 


--3:移动【二进制流字段】数据存储表空间,如将表table_name中的二进制流字段col_name移动到new_tbsp表空间
alter table table_name move tablespace new_tbsp  lob (col_name) store as  (tablespace new_tbsp);

--生成指定表table_name中为CLOB类型的字段的移动到new_tbsp 表空间SQL语句
select 'alter table '|| table_name||' move tablespace new_tbsp lob ('|| column_name||' ) store as  (tablespace new_tbsp);'  from user_tab_columns 
where  data_type='CLOB' and table_name='table_name'

在这里插入图片描述
在这里插入图片描述

oracle存储参数(storage子句)含义及设置技巧

可用于:表空间、回滚段、表、索引、分区、快照、快照日志

在这里插入图片描述
oracle存储模式:
数据块(block):也叫逻辑块或ORACLE块,它是数据库进行I/O的最小单位。一个数据库块对应硬盘上的一个或多个物理块,它决定于建库时所使用的初始化参数DB_BLOCK_SIZE。数据库块的大小也决定了SGA中每一个数据库缓冲区的大小。
范围(extent):范围是数据库存储空间分配的逻辑单位,它由一组连续的数据块所组成。当数据库的对象(如表、列等)增长时,空间就被分配给范围。
段(segment): 是由一个或多个范围组成的范围集,它包含一个表空间内特定逻辑存储结构的所有数据。一个段是一个能被建立的逻辑结构,它占有存储,并且能增长,当一个段中的所有空间被用完时,ORACLE就分配它一个新的范围,但是一个段不能跨越表空间。
表空间(tablespace):一个数据库从逻辑上来说是由一个或多个表空间所组成,表空间是数据库中物理编组的数据仓库。每一个表空间是由段所组成,一个表空间存放一个或多个数据库的物理文件。一个数据库中的数据被逻辑地存储在表空间上

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐