分类: Oracle
2008-04-16 13:36:25
来源:赛迪网 作者:Alice |
20.触发器依赖于执行的顺序
触发器依赖于其他触发器,如log/audit由其他触发器完成;
打包相互依赖的商业逻辑到存储过程中,在然后在触发器中调用过程;
将内部相互依赖的过程组合成一个触发器;
确保语句级触发器在行级触发器后执行。
21.使用Sequence nextval而没有curval:数据中断的威胁;
不要使用currval作为上下文读取,显示传递ID或使用sys_context;
序列是批分配的,currval+1不一定等于nextval。
22.使用序列作为计数器,数据中断的威胁;
23.在常量上使用绑定变量:降低性能;
24.对存在的检查使用计算列(聚集):降低性能
在内查询中计算聚集,然后在外查询再将计算的值与某些值比较,这会导致聚集值被抛弃;
25.为流程控制使用异常:数据中断的威胁;
--使用exception when XXX then blocks而不是错误处理;
exception中仅处理错误。
26.日期列(截去时间)比较,数据中断的威胁;
27.对不存在的值使用0-1之类的数字:使系统难以使用;
对于一些判断情况,通常使用0,1,-1之类的表示,很难理解;
使用null表示不存在,未知。
28.对于连续的作业不使用专用包:使系统难以使用;
作业的内容是使包体中的一个过程,函数;
29.将任何东西都打包到存储过程中,Ref Cursor用来读数据,使系统难以使用; |