易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle的聚簇表

索引聚簇表
create cluster emp_dept_cluster
(deptno number(2)) size 1024;
size 1024 表示每个聚簇键值关联大约1024字节的数据,
oracle会在用这个数据库块上通过size计算最多可以放多少个簇
如果块是8KB,那么这个块上最多放7个聚簇键
向聚簇中放数据之前,需要先对聚簇建立索引.
create index emp_dept_cluster_idx on cluster emp_dept_cluster;
加载的方式应彩用一一对应的关系.加载完主表之后再加载从表
什么情况下不能用索引聚簇表
1)如果预料到聚簇中的表会大量修改,索引聚簇表会对DML的性能产生负面影响.
2)非常不适合对单表的全表扫描,因为只能引起对其它表的全表扫描
3)频繁对表进行TRUNCATE和加载,因为聚簇中的表是不能TRUNCATE的
SQL> truncate table dept;
truncate table dept
               *
ERROR at line 1:
ORA-03292: Table to be truncated is part of a cluster
如果数据主要用来读,不怎么修改,并且逻辑上与聚簇连接想适合,最好使用索引聚簇表
oracle数据字典就是这样做的
SQL> set autotrace traceonly statistics
SQL> select a.deptno,b.ename from dept_02 a,emp_02 b where a.deptno=b.deptno and
a.deptno='30';
6 rows selected.
Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE
   1    0   MERGE JOIN
   2    1     INDEX (UNIQUE SCAN) OF 'dddd' (UNIQUE)
   3    1     FILTER
   4    3       TABLE ACCESS (FULL) OF 'EMP_02'
Statistics
----------------------------------------------------------
          0 recursive calls
          0 db block gets
          5 consistent gets
          0 physical reads
          0 red


相关文档:

Oracle维护常用SQL语句汇总


 如何远程判断Oracle数据库的安装平台
  select * from v$version;
  查看表空间的使用情况
  select sum(bytes)/(1024*1024) as free_space,tablespace_name
  from dba_free_space
  group by tablespace_name;
  SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
  (B.BYTE ......

Oracle union intersect minus 复习

两个子查询进行集合运行, 条件就是两个查询的字段个数一致,类型一致,字段名可以不同。
SQL> select * from ta;
        ID NAME
---------- --------------------
         1 gorey
       &nb ......

在 Oracle 中存储与管理大对象数据类型


 一、Oracle数据库支持的大对象数据类型。
  在Oracle数据库中为了更好的管理大容量的数据,专门开发了一些对应的大对象数据类型。具体的来说,有如下几种:
  一是BLOB数据类型。它是用来存储可变长度的二进制数据。由于其存储的是通用的二进制数据,为此在数据库之间或者在客户端与服务器之间进行传输的时候, ......

在Oracle数据库创建脚本中如何初始化某些表

Sample
表空间:IMPTEMP
表:Roles 、Users
通过PL/SQL导出的数据库脚本
-----------------------------------------------------
-- Export file for user IMPTEMP                    --
-- Created by Administ ......

oracle事务处理

1.回退事务
最好设置一个保存点,例savepoint a,或者执行 exec dbms_transaction.savepoint('a')(执行前需要执行set serveroutput on语句);取消部分事务就可以使用rollback to a,或者执行exec dbms_transaction.rollback_savepoint('a');取消全部事务可以执行rollback,或者exec dbms_transaction.rollback;
2.只读事务
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号