Oracle-SQL开发的经验总结

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);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值