常用的PL/SQL开发原则

简介:        广泛使用UROWID来处理DML语句       在你的存储过程中谨慎使用DDL语句,因为这可能会破坏你的transaction的连续性,更为严重的是可能会阻塞DML操作并可能会导致大量library cache latch争用并且有可能会导致某些sql执行计划的改变。


       广泛使用UROWID来处理DML语句

       在你的存储过程中谨慎使用DDL语句,因为这可能会破坏你的transaction的连续性,更为严重的是可能会阻塞DML操作并可能会导致大量library cache latch争用并且有可能会导致某些sql执行计划的改变。

       不要在存储过程里不应该commit的地方commit,特别是当你的存储过程会被另外一个存储过程调用的时候,你考虑到了你这么做会破坏调用你的父存储过程的transaction的连续性了吗?

       注意你面对的数据量,小数据量的处理方法和海量数据的处理方法是不一样的!

       循环的时候要注意清空临时变量的值

       注意“select into 变量”的问题,使用子begin语句封装“select into 变量”以避免可能会出现的错误,这样就可以避免要在“select into 变量”之前先执行一下select count(*)

       在PL/SQL中定义varchar2变量的时候当你在不知道你所定义的变量的长度的时候可以将其定义为varchar2(4000),这一点都不浪费!

       循环的时候一定要注意exit,否则就太可怕了!

       处理显式cursor的时候一定要注意fetch和exit,否则就太可怕了!如下是我处理的一个真实的案例,这个案例中暴露出的问题就很好的说明了处理cursor的时候一定要注意fetch和exit:

       bulk collect into的时候不要一次collect太多的数据,建议一次collect的数据量在10000条以内,你可以用批量绑定自带的limit子句来限制或者使用rownum来限制

       谨慎使用hint,除非你很清楚你在做什么。比如说这里你强制oracle使用了某个索引,假如以后这个索引的名字被改了,由此带来的执行计划的变更你怎么办?你考虑到这种情况了吗?

目录
相关文章
|
24天前
|
SQL Perl
PL/SQL经典练习
PL/SQL经典练习
13 0
|
24天前
|
SQL Perl
PL/SQL编程基本概念
PL/SQL编程基本概念
13 0
|
28天前
|
SQL Perl
PL/SQL Developer 注册机+汉化包+用户指南
PL/SQL Developer 注册机+汉化包+用户指南
16 0
|
29天前
|
SQL 关系型数据库 API
Star 4.7k!高效SQL Parser!纯Python开发!自称目前最快的纯Python SQL解析器!
Star 4.7k!高效SQL Parser!纯Python开发!自称目前最快的纯Python SQL解析器!
|
2月前
|
SQL 存储 数据库
SQL数据开发
SQL数据开发
|
3月前
|
SQL 存储 缓存
大厂 5 年实时数据开发经验总结,Flink SQL 看这篇就够了!
大厂 5 年实时数据开发经验总结,Flink SQL 看这篇就够了!
|
3月前
|
SQL 缓存 数据库
PL/SQL的性能优化
PL/SQL的性能优化
37 0
|
3月前
|
SQL Perl
PL/SQL的函数和包
PL/SQL的函数和包
26 1
|
3月前
|
SQL 存储 数据库
PL/SQL触发器的概述和用途
PL/SQL触发器的概述和用途
30 2
|
3月前
|
SQL 存储 Perl
PL/SQL的游标
PL/SQL的游标
26 2