基于Oracle的SQL优化
⼀.编写初衷描述
|
在应有系统开发初期,由于数据库数据较少,对于sql语句各种写法的编写体现不出sql的性能优劣,随着数据的不断增加,出现海量数据,劣质sql与优质sql在执⾏效率甚⾄存在百倍差距,可见sql优化的重要性
|
⼆.Sql语句性能优化
|
2.1 认识Oracle的执⾏过程
image
2.2 Oracle优化法则---漏⽃法则
image
image
5.确定执⾏计划
绑定****(BIND)****:
1.在语句中查绑定变量
2.赋值(或重新赋值
执⾏****(EXECUTE)****:
1.应⽤执⾏计划
2.执⾏必要的I/O和排序操作
提取****(FETCH)****:
1.从查询结果中返回记录
2.必要时进⾏排序
3.使⽤ARRAY FETCH机制
共享游标:好处
1.减少解析
2.动态内存调整
3.提⾼内存使⽤率
2.5.1 Sql共享原理
Oracle将执⾏过程中的sql语句放在内存的共享池中,可以被所有的数据库⽤户共享到,当执⾏⼀条sql语句时,如果它和之前的sql执⾏语句完全相同时,oracle会快速获取被解析的语句以及最好的执⾏路劲。
这块系统属于全局的区域,但是oracle只对简单的表提供⾼速缓存,如果是多表的连接查询,数据库管理员必须在启动参数⽂件中为该区域设置合适的参数,增加共享的可能性。
2.5.2 Sql共享的条件(注意事项)sql语句优化方式
1.执⾏语句必须与共享池语句完全⼀样,包括(⼤⼩写,空格,换⾏等).
2.两条语句所指的对象必须完全相同。
3.两个SQL语句绑定变量的名字必须相同。
例⼦:字符级的⽐较
SELECT * FROM UR_USER_INFO
Select * from ur_user_info
例⼦:相同的绑定变量名
select pay_fee,pay_method from bal_payment_info where pay_sn= : pay_sn;
select pay_fee,pay_method from bal_payment_info where pay_sn= : pay_no;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论