Oracle编程艺术阅读笔记-1

1. 绑定变量。

   不使用会产生的影响:

   每次运行都需要oracle来 硬解析,十分影响效率。作者提供的数据时20倍。
   因为oracle会将sql硬解析的结果放入sga区域。当有新的硬解析请求时,oracle会串行的执行,并将结果更新进sga。因为sga提供给sql的缓存区域大小是有限的。 如果频繁的更新一些新的不绑定变量的sql进入该区域,那么一些使用绑定变量的既存的sql就会被挤出,造成整个系统的效率低下。一颗老鼠是坏了一锅汤。。。

    还会存在 sql注入的危险。



2. 表的类型

   堆组织表:无序,一般的普通表。
   索引组织表:通过索引组织的表。表的排列是有顺序的。
             使用情景:
             1.表完全由索引组成(这样实际上只是使用了表上的索引,并没有使用表
               本身,所以可以将该表直接实现为索引组织表。这样,就是虚存储索引组
               织表本身。如果是普通的表的话,就需要存储表本身和表对应的索引两个
                部分,会加大存储空间和操作的开销)。
              2. 代码查找表。 一般的,如系统中的standardcode表等。这类表一般
                  只通过主键来访问一个表(如本人现在的系统中的msg表,只要通过
                  code和lan的主键来得到msg)。

   索引聚族表:
   散列聚族表:
   嵌套表:
   临时表:
          一般应该在数据库建立启动的时候创建临时表。因为创建临时表是DDL操作,
          耗费时间,还可能出现一些异常。所以临时表是"静态"定义的,在视图,
           存储过程的静态sql中都可以引用临时表。
          生命周期包括 session和事务周期的临时表。
          临时表的数据在session消失或者事务结束时会消失。

          使用情景:
                  需要临时存储一个行集,并且该行集由其他表处理
                (可能对应一个session或者会话),可以创建临时表。

   对象表:
   外部表:

猜你喜欢

转载自swearyd7.iteye.com/blog/1775330