您的位置:首页 > 数据库 > Oracle

Oracle-SQL开发的经验总结

2013-09-30 14:01 337 查看
Sql必须使用绑定变量(由于特殊业务逻辑不适合使用绑定变量的,需要得到DBA确认)
•Sql中变量的类型必须与字段定义一致;
查询分区表时,条件要使用上分区字段,并且最好为闭区间,如:
ordertime >=
sysdate - 1 / 24 and
ordertime <=
sysdate,需要注意的是该区间需满足业务需要

•Sql条件中使用时间类型字段的,变量要声明为字符串并写成to_date()的形式来使用;
•避免索引字段上进行计算操作或者嵌套函数;
•能使用UNION ALL的不要使用UNION;
•用EXISTS替代IN、用NOT EXISTS替代NOT
IN;
•用EXISTS替换DISTINCT;
•只取自己所需要的列;

•Sql条件中禁止直接对日期字段列使用函数和运算,保证条件中的左边就只是日期字段列,比如:trunc(not_after_time
- TO_DATE(:1,'YYYY-MM-DD') , 0)<=:2,最好修改为not_after_time < ?;
•使用DECODE函数或case when
来减少查询次数或重复连接相同的表;
•禁止使用select * from tab,必须明确的写出列名;
•使用DECODE函数来减少查询次数或重复连接相同的表;
•总是使用索引的第一个列(指复合索引);
•需要使用hint的(由DBA确认给出),请勿随意删除修改hint的内容、位置(需保证语句中只有一个hint,且紧跟在select后面,表如果使用了别名,hint中也使用别名);
•用>=替代>;
批量dml操作必须使用批量提交的方式(1万条1 commit);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: