1. 结果的三种获得方法:可带回值的参数,return 值,select 返回记录集
2. 编写过程
1) 参数
2) 设置环境:显示设置一些环境开关:如加锁方法、set nocount on 等,否则因为用户环境不同,影响运行效果。
3) 框架:构思结构
4) 变量:统一放在前面,并注释。
5) 注释:注释和代码同步完成,保持一致。
6) 编写
7) 讨论记录
8) 测试
3. 必须考虑的问题
3.1 可读性
1) 逻辑清晰
2) 语句不要过于复杂,靠产生临时表过渡
3) 注释
4) 一屏可视,便于思考
5) 艺术感
3.2 效率
一种方法和语句的使用,必须考虑它的执行效率。注意以下问题:
1) 回避not in查询
2) 游标嵌套慎用
3) 使用索引:善于用索引,大大提高速度,在语句中有时需要显式说明。
4) 事务嵌套慎用。
结存程序一般30分钟以上,主要原因就是使用了not in 查询、游标嵌套、没有用索引。改造后同样数据量9秒就能完成。
4. 事务
1) 保持一致性所必需,必须有意识的考虑何时必须用事务。
2) 注意加锁特性,加锁属性开关状态。辽阳的例子,informix缺省加锁返回机制没有注意,造成偶尔死机,问题非常隐蔽。
3) 处理不当会带来系统死锁。
4) 仔细测试,否则的灾难将难以挽回。
5) 大量语句的事务推荐方法,将存储过程嵌在事务中,这样可以防止意外出错,造成死锁。见附件1。
5. 测试
5.1 测试环境的搭建,要保存一个对应的程序,因为不会轻易结束。见附件3。
5.2 编写和测试花一样的时间。
5.3 任何改动,都要测试。
5.4 叫真,不要想当然,因为还有系统软件的问题。如,错误号状态,是最后一个语句的错误,Sql 7.0的bug : 语句“if @@Error <>
5.5 调式工具