about me:oracle ace pro,optimistic,passionate and harmonious. focus on oracle,mysql and other database programming,peformance tuning,db design, j2ee,linux/aix,architecture tech,etc
全部博文(166)
分类: oracle
2022-04-11 14:33:07
1. pl/sql中的命名规范和编程规范:包,过程,函数,触发器,类型,变量等
你偏向于匈牙利命名法还是骆驼命名法还是其他的?命名规范很重要,小组甚至公司遵循共同的命名规范,比如可以防止数据库表与过程里的变量重名,从而防止错误的代码产生,当然你也可以用前缀法来避免这种情况。但是总而言之,我们需要有共同遵守的规范,让我们的代码更清晰,可读性更强,问题更少。比如一些编程规范,你是否在定义局部变量的时候考虑一个初始值?还是使用默认值?是否考虑定制统一的pl/sql格式模板?相关内容大家都可以讨论讨论。
2.pl/sql中的异常处理规范:异常分类:编译期、运行期、可预测的、不可预测的,异常如何捕获与如何处理,在什么场合和位置处理异常。相关包比如dbms_utility.format_error_stack、dbms_utility.format_call_stack、dbms_utility.format_error_backtrace以及10g的dml error log,批处理异常特点和应用。比如when others部分到底该如何处理,when others null;完事了?是否该考虑定制一个高度封装的异常处理包来处理异常?
3.pl/sql中的静态sql和动态sql规范以及何时使用绑定变量,何时避免使用绑定变量,
如何规范化地写动态sql?
4.sql与pl/sql的关系,如何最佳使用pl/sql特性而避免使用sql。
pl/sql与sql联系紧密,以至于很多人写pl/sql就好像写了一堆sql似的,但是pl/sql必有自己独特的特性,善于使用pl/sql而减少sql代码,可以提高程序性能和重用性,可维护性。善用pl/sql的特性,可以减少不必要的sql使用,这是肯定的,比如user函数,我还需要select user …from dual吗?判断表中存在某个信息就对此信息的数据做相关操作,我还需要事先查一遍吗?
5.pl/sql中的cursor使用规范,如何避免不必要的cursor使用 。
能用简单的高效的sql完成尽量使用sql,而不要在cursor里打开,循环,执行sql的不高效动作。是不是与第4点有点冲突?其实没有,第4点说的是不要滥用sql,第5点我想希望大家讨论些如何善用sql减少代码提高效率。
6.如何使用好pl/sql的一些优化机制:管道函数、bulk nding、nocopy,returning,cache,各种类型的合理使用.事务和并发控制:如commit的频率、场合、位置,for update (nowait),for update skip locked等。
7.减少代码耦合度和提高代码重用性一些讨论和案例,大家有类似经验都可以分享一下。比如包起到封装的效果,封装的好必然可以减少耦合度,提高代码重用性。
8.最后一点,pl/sql内置包可能是pl/sql编程中比较容易忽略的部分, package众多,如果能使用恰当,会让我们的代码量减少,并且效率更好,那么能否讨论下你认为的常用包以及一般用途。
上一篇:
下一篇: