简单的sql查询优化

1、sql中禁止用select *  from 的写法 (缺点:将会增加服务区IO的输出负担)

2、如果一个sql比较复杂 则写完的sql 可以用 在plsql 中用f5 来看起执行计划,

例如sql

select * from exp_booking where booking_id like '%1231231231%'


在执行计划中如果看到 table accessfull 这种标记务必注意,此标记代表全表访问,如果您的表有上百万数据,那么其将会对数据库造成非常大的IO读取瓶颈,则需要对其sql进行优化,使其走索引,例如

select * from exp_booking where booking_id = '1231231231'


此种状态代表执行sql 走了相应的索引,则我们可以看到后面的cost 为2,其消耗cup的性能比较小

3、禁止写破坏索引的sql语句,以下情况为不能使用索引的写法

(1)在where条件中使用函数

如:where substr(……  字段为字符型的查询whereinstate=’5’ ;instate=5 会用to_number

(2)>;not in;LIKE %_开头不走索引 。 >=BETWEEN,IN,LIKE不以%_开头使用索引

(3)建立的索引字段中,不能有空值

(4)or 不走索引  查询是可以用 selectid from ….. union all select if from ……

(5)不要用 wm_contact

(6)按id插入多条记录时不要用循环,

要用 Insert intoTable2(field1,field2,...) select value1,value2,... from Table1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值