一. 暂时表
暂时表放在暂时表空间,不生成redo,仅仅有undo。
在暂时表中能够创建索引、视图及触发器,还能够使用“Export and Import(导出和导入)”或“Data Pump(数据泵)”导出和导入暂时表的定义。可是。即使使用了ROWS 选项,也不会导出数据。
有基于事务(默认)和基于session两种。其它的会话不能訪问到。
在暂时表中。DML锁永远不须要。

1.创建默认的(基于事务的)暂时表:(on commit delete rows:提交时清空数据)

SQL> create global temporary table temp_emp1 on commit delete rows as select * from scott.emp where 1=2;

Table created.

SQL> insert into temp_emp1 select * from scott.emp;

14 rows created.

SQL> select * from temp_emp1;

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80        800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81       2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10
      7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20
      7839 KING       PRESIDENT            17-NOV-81       5000                    10
      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30
      7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7900 JAMES      CLERK           7698 03-DEC-81        950                    30
      7902 FORD       ANALYST         7566 03-DEC-81       3000                    20
      7934 MILLER     CLERK           7782 23-JAN-82       1300                    10

14 rows selected.
#提交
SQL> commit;

Commit complete.

SQL> select * from temp_emp1;

no rows selected

2.创建另外一种基于session的暂时表(on commit preserve rows:提交时保留数据。但在退出session时会清空数据) 
SQL> create global temporary table temp_emp2 on commit preserve rows as select * from scott.emp where 1=2;

Table created.

SQL> insert into temp_emp2 select * from scott.emp;

14 rows created.

SQL> 
SQL> commit;

Commit complete.

SQL>  select * from temp_emp2;

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80        800                    20
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81       2975                    20
      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30
      7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10
      7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20
      7839 KING       PRESIDENT            17-NOV-81       5000                    10
      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30
      7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7900 JAMES      CLERK           7698 03-DEC-81        950                    30
      7902 FORD       ANALYST         7566 03-DEC-81       3000                    20
      7934 MILLER     CLERK           7782 23-JAN-82       1300                    10

14 rows selected.

 

二.手工条带化:
#分析表
SQL> analyze table scott.emp compute statistics;
Table analyzed.
SQL> select table_name,tablespace_name,blocks,empty_blocks from dba_tables where owner='SCOTT';

TABLE_NAME TABLESPACE     BLOCKS EMPTY_BLOCKS
---------- ---------- ---------- ------------
DEPT       USERS
EMP        USERS               5            3
BONUS      USERS
SALGRADE   USERS

SQL> col name for a50
SQL> select file#,name from v$datafile;

     FILE# NAME
---------- --------------------------------------------------
         1 /u01/app/oracle/oradata/PROD/disk3/system01.dbf
         2 /u01/app/oracle/oradata/PROD/disk4/undotbs01.dbf
         3 /u01/app/oracle/oradata/PROD/disk4/sysaux01.dbf
         4 /u01/app/oracle/oradata/PROD/disk3/users01.dbf
         5 /u01/app/oracle/oradata/PROD/disk3/lxtbs01.dbf
         6 /u01/app/oracle/oradata/PROD/disk4/lxtbs02.dbf

6 rows selected.

SQL> alter table scott.emp allocate extent(size 20m datafile '/u01/app/oracle/oradata/PROD/disk3/system01.dbf');
alter table scott.emp allocate extent(size 20m datafile '/u01/app/oracle/oradata/PROD/disk3/system01.dbf')
*
ERROR at line 1:
ORA-03284: datafile /u01/app/oracle/oradata/PROD/disk3/system01.dbf is not a member of tablespace
USERS

#分配数据块给EMP表
SQL> alter table scott.emp allocate extent(size 20m datafile '/u01/app/oracle/oradata/PROD/disk3/users01.dbf');

Table altered.

SQL> analyze table scott.emp estimate statistics;

Table analyzed.

SQL> select table_name,tablespace_name,blocks,empty_blocks from dba_tables where owner='SCOTT';

TABLE_NAME TABLESPACE     BLOCKS EMPTY_BLOCKS
---------- ---------- ---------- ------------
DEPT       USERS
EMP        USERS               5         2563
BONUS      USERS
SALGRADE   USERS
#收回空块
SQL> alter table scott.emp deallocate unused;

Table altered.

SQL> analyze table scott.emp estimate statistics;

Table analyzed.

SQL> select table_name,tablespace_name,blocks,empty_blocks from dba_tables where owner='SCOTT';

TABLE_NAME TABLESPACE     BLOCKS EMPTY_BLOCKS
---------- ---------- ---------- ------------
DEPT       USERS
EMP        USERS               5            3
BONUS      USERS
SALGRADE   USERS


三.把表/索引迁移到其它表空间:

#把表迁移到其它表空间

SQL> alter table scott.emp move tablespace system;

Table altered.

SQL> select table_name,tablespace_name,blocks,empty_blocks from dba_tables where owner='SCOTT';

TABLE_NAME TABLESPACE     BLOCKS EMPTY_BLOCKS
---------- ---------- ---------- ------------
DEPT       USERS
BONUS      USERS
SALGRADE   USERS
EMP        SYSTEM              5            3
#把索引迁移到其它表空间
SQL> alter index scott.pk_emp rebuild tablespace system;

Index altered.


四.删除表:
SQL> drop table scott.dept;
drop table scott.dept
                 *
ERROR at line 1:
ORA-02449: unique/primary keys in table referenced by foreign keys

#
SQL> drop table scott.dept cascade constraints;

Table dropped.
五.外部表:
详见: 【dba。34】外部表。


六.查询表的视图:
SQL> select object_id,object_name,object_type from dba_objects where owner='SCOTT';

 OBJECT_ID OBJECT_NAM OBJECT_TYP
---------- ---------- ----------
     10241 EMP        TABLE
     10242 PK_EMP     INDEX
     10243 BONUS      TABLE
     10244 SALGRADE   TABLE

SQL> col table_name for a10
SQL> col tablespace_name for a10
SQL> select table_name,tablespace_name,blocks,empty_blocks from dba_tables where owner='SCOTT';

TABLE_NAME TABLESPACE     BLOCKS EMPTY_BLOCKS
---------- ---------- ---------- ------------
BONUS      USERS
SALGRADE   USERS
EMP        SYSTEM              5            3



SQL> select segment_name,segment_type,tablespace_name,bytes/1024 k,extents,blocks,initial_extent/1024 init,next_extent/1024 next,pct_increase from dba_segments where owner='SCOTT';



SEGMENT_NA SEGMENT_TY TABLESPACE          K    EXTENTS     BLOCKS       INIT       NEXT PCT_INCREASE
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ------------
EMP        TABLE      SYSTEM             64          1          8         64
PK_EMP     INDEX      SYSTEM             64          1          8         64
BONUS      TABLE      USERS              64          1          8         64
SALGRADE   TABLE      USERS              64          1          8         64





【oracle11g,18】存储结构:暂时表,手工条带化,表/索引迁移表空间,删除表,外部表的更多相关文章

  1. SQL SERVER大话存储结构(2)_非聚集索引如何查找到行记录

              如果转载,请注明博文来源: www.cnblogs.com/xinysu/   ,版权归 博客园 苏家小萝卜 所有.望各位支持!      1 行记录如何存储     这里引入两个 ...

  2. Mysql-Innodb : 从一个字节到整个数据库表了解物理存储结构和逻辑存储结构

    首先要从Innodb怎么看待磁盘物理空间说起   一块原生的(Raw)物理磁盘,可以把他看成一个字节一个字节单元组成的物理存储介质   如果要在这块原生物理空间中插入一条记录,不能单单只插入数据,还需 ...

  3. MYSQL Innodb逻辑存储结构

    转载于网络 这几天在读<MySQL技术内幕 InnoDB存储引擎>,对 Innodb逻辑存储结构有了些了解,顺便也记录一下: 从InnoDB存储引擎的逻辑存储结构看,所有数据都被逻辑地存放 ...

  4. InnoDB逻辑存储结构

    从InnoDB存储引擎的逻辑存储结构看,所有数据都被逻辑地存放在一个空间中,称之为表空间(tablespace).表空间又由段(segment).区(extent).页(page)组成.页在一些文档中 ...

  5. 联合索引在B+树上的存储结构及数据查找方式

    能坚持别人不能坚持的,才能拥有别人未曾拥有的.关注编程大道公众号,让我们一同坚持心中所想,一起成长!! 引言 上一篇文章<MySQL索引那些事>主要讲了MySQL索引的底层原理,且对比了B ...

  6. MySQL提升笔记(4)InnoDB存储结构

    这一节本来计划开始索引的学习,但是在InnoDB存储引擎的索引里,存在一些数据存储结构的概念,这一节先了解一下InnodDB的逻辑存储结构,为索引的学习打好基础. 从InnoDB存储引擎的存储结构看, ...

  7. SQL SERVER大话存储结构(3)_数据行的行结构

            一行数据是如何来存储的呢?     变长列与定长列,NULL与NOT NULL,实际是如何整理存放到 8k的数据页上呢?     对表格进行增减列,修改长度,添加默认值等DDL SQL ...

  8. K:图的存储结构

      常用的图的存储结构主要有两种,一种是采用数组链表(邻接表)的方式,一种是采用邻接矩阵的方式.当然,图也可以采用十字链表或者边集数组的方式来进行表示,但由于不常用,为此,本博文不对其进行介绍. 邻接 ...

  9. hadoop笔记之Hive的数据存储(外部表)

    Hive的数据存储(外部表) Hive的数据存储(外部表) 外部表 指向已经在HDFS中存在的数据,可以创建Partition 它和内部表在元数据的组织上是相同的,而实际数据的存储则有较大的差异 外部 ...

随机推荐

  1. MySQL详解(25)-----------MySQL性能优化

    1.    简介 在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响.MySQL是目前使用最多的开源数据库,但是MySQL数据库的默认设置性 ...

  2. C# 面向对象之类和方法

    一.新建一个类,用来存放属性和方法( 属性和方法写在同一个类中). 先新建一个类: using System; using System.Collections.Generic; using Syst ...

  3. Zynq7000系列之芯片引脚功能综述

    很多人做了很久的FPGA,知道怎么去给信号分配引脚,却对这些引脚的功能及其资源限制知之甚少:在第一章里对Zynq7000系列的系统框架进行了分析和论述,对Zynq7000系列的基本资源和概念有了大致的 ...

  4. discuz x3论坛搬家换虚拟主机完美使用教程 亲测可行 附操作步骤

    第一步:备份网站数据进入后台—站长—数据库—备份,数据备份类型选择“Discuz!和 UCenter数据”,备份成功以后,数据自动保存在data文件夹下. 第二步:网站文件下载 把整个网站文件打包(虚 ...

  5. LR性能分析随笔(一)

    一.关键词 吞吐量:对于吞吐量,单位时间内吞吐量越大,说明服务器的处理能力越好:而请求数仅表示客户端向服务器发出的请求数,与吞吐量一般成正比关系. HTTP:HTTP404表示文件或目录没有找到.有些 ...

  6. 【前端路由】Vue-router 中hash模式和history模式的区别

    咱们今天说说VUE路由的hash模式与history模式的区别,这个也是面试常问的问题,不要小看这道题其实问到这里的时候那个面试官应该是个大牛,开发经验丰富,这个题其实就是考验你的开发经验是否属实. ...

  7. xilinx vivado 百度云分享 vivado2019.1 2018.3 2017.4

    vivado2019.1 sdx套件 链接:https://pan.baidu.com/s/1ymRpUa2UYTFuafEChA0-ZQ 提取码:cd4p 复制这段内容后打开百度网盘手机App,操作 ...

  8. API Studio 5.1.2 版本更新:加入全局搜索、支持批量测试API测试用例、读取代码注解生成文档支持Github与码云等

    最近在EOLINKER的开发任务繁重,许久在博客园没有更新产品动态了,经过这些日子,EOLINKER又有了长足的进步,增加了更多易用的功能,比如加入全局搜索.支持批量测试API测试用例.读取代码注解生 ...

  9. ORACLE索引介绍和使用

    1.什么是索引 索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据: Oracle存储索引的数据结构是B*树,位图索引也是如此,只不过是叶子节点不同B*数索引: 索引由根节点.分支节点 ...

  10. cc.Node—事件响应

    触摸事件1: 触摸事件类型: START, MOVED, ENDED(物体内), CANCEL(物体外);2: 监听触摸事件: node.on(类型, callback, target(回掉函数的th ...