编写sql语句注意事项

1、使用绑定变量
不良的写法:
select * from basetab where msisdn=‘13800138000’
正确的写法:
select * from basetab where msisdn=:1
在jdbc中使用preparedstatement
2、不要频繁的commit
不正确的方法:
insert into basetab values(….);
commit;
insert into basetab values(….);
commit;
正确的方法:
insert into basetab values(….);
insert into basetab values(….);
commit;
禁止在jdbc中使用AutoCommit
3、尽量避免分表设计
不好的方式:
按每天或每月一张表
应用开发要根据时间判断操作哪个表
会写成动态的SQL
正确的方式:
使用时间分区表
4、谨慎设计索引
如果查询的结果集为表中记录5%以上使用索引用效
如果查询的结果集数量接近表记录数,使用索引无效
5、正确使用组合索引
create index inx_bas_msi_obj on subscribeinfo(msisdn,objectid);
正确的SQL写法:
select * from subscribeinfo where msisdn=:1 and objectid=:2
不正确的SQL写法:
Select * from subscribeinfo where objectid=:1 and msisdn=:2

1、有表达式的字段无法使用索引
不良习惯:
select * from mydata where 100>salary
Select * from mydate where salary +1 >100;
良好习惯:
select * from mydata where salary<100
2、避免索引字值数据类型转换
create table tx(txtd varchar2(100));
create index idx_txtd on tx(txtd);
不正确的方法
select * from tx where txtd=100;
正确的方法
select * from tx where txtd=‘100’
3、小心 is null 操作
NULL值不在索引中,如果用is null操作会使用不了索引
4、正确使用动态语句
正确的方式:
execute immediate ‘insert into t values(:x)’ using i;
不好的方式:
execute immediate ‘insert into t values(‘||i||’)’;



你可能感兴趣的:(sql语句)