Oracle编程艺术阅读笔记-1

1. 绑定变量。

不使用会产生的影响:

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

还会存在[color=darkred]sql注入[/color]的危险。


2. 表的类型

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

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

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

对象表:
外部表:

你可能感兴趣的:(oracle,工作笔记)