2249
0
admin
IP 编辑 禁止 帖子 清理
使用道具
785
2
撸天啦
解析操作分为软解析和硬解析。
软解析:真个sql语句可以输出一个hash值,那么系统的cache中也会有一个hash值,第一,会查看cache中有没有这个hash值。如果俩个hash值相同的话,则会省去优化器的相关工作。这是软解析。
如果,cache中没有这个值,或者不相同,那么优化器将进行创建解析树,生成执行计划的动作,这个叫做硬解析。那么减少硬解析的的办法,就是把sql写正确。重复用以前写过的sql语句。
管理
1700
song
如何优化硬解析操作
1、更改参数 cursor_sharing
参数cursor_sharing决定了何种类型的SQL能够使用相同的SQLarea
2、使用绑定变量
绑定变量要求变量名称,数据类型及长度是一致
尽可能的避免硬解析,因为硬解析需要更多的CUP资源
cursor_sharing参数应权衡利弊,需要考虑更多的similar与force带来的影响
尽可能的使用绑定变量来避免硬解析
1674
WR
select *from tbl where name like 'javakc%'
简历索引
1546
一个人的时光
软解析:sql语句可以输出一个hash值,那么系统的cache中也会有一个hash值,第一,会查看cache中有没有这个hash值。如果俩个hash值相同的话,则会省去优化器的相关工作。
如果cache中没有这个值,或者不相同,那么优化器将进行创建解析树,生成执行计划的动作,这个叫做硬解析。
那么减少硬解析的的办法,就是把sql写正确。重复用以前写过的sql语句。
1450
Sarbr
尽量不使用 like '%.....%'
对于like '%.....%',Oracle可以应用column上的index
对于like '%.....%'的可以利用reverse+function index的形式
1518
Cracia
一个最好的办法就是,最常用的最有效的办法就是让sql共享
1)sql语句完全相同,执行一百个sql语句,如果99个sql语句都是一样的话,这里这个相同的语句就发生了98次软解析而只有一次硬解析
共享sql就是让sql完全相同,librarycache里面有好多链。链善挂了好多chunk,chunk里面有sql和sql执行计划,一个sql语句进入到数据库,要对sql语句进行解析
首先看这个sql语句有没有被解析过。
2)判断语句有没有共享
3)使用绑定变量
1902
王之神判
121
wangyuemin1
1932
740317431
316
guqihang
273
老李
982
m1359292934
站点统计|举报|Archiver|手机版|小黑屋|Comsenz Inc.
GMT+8, , Processed in 0.195171 second(s), 9 queries .
Powered by javakc! X1.0
© 2004-2014 javakc
f1208.com 备案号:京ICP备14030918号-1