Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92656514
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: 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用来读数据,使系统难以使用;

阅读(362) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~