ITPub博客

首页 > 应用开发 > IT综合 > 关于cursor_sharing参数的说明

关于cursor_sharing参数的说明

原创 IT综合 作者:jordan1226 时间:2007-05-28 14:20:34 0 删除 编辑

cursor_sharing是从8I开始提出的在服务器端处理SQL绑定的参数,他由个值

force,similar,exact

[@more@]

force表示强行对SQL语句进行变量绑定,如

select * from mytest where name = 'jack';

SQL语句传到server端后,会生成select * from mytest where name =:"SYS_B_0" 的SQL版本,后面在运行相同的查询,但name字段的传值不同,也会利用前面生成的查询计划,这个参数在一些没有绑定变量的应用程序里面会带来很好的性能收益,避免了过度的硬解析,但也有弊病,因为随着传入数据的不同,需要执行不同的查询方案,比如走full scan还是走index range scan,可能有时候会运用错误的方案进行查询,

exact表示每个SQL语句应该精确匹配,包括大小写,空格等,相同的才可能被重用

similar是上面两者的结合体,如果查询的sarg字段存在柱状图信息,则随着传值的不同,每次都要硬解析,此时等同与exact,如果不存在柱状图信息,则强行绑定,等同与force(柱状图描述了相关字段的数据分布,这个对索引的选用有很大影响)

一个好的应用程序不应该使用force选项

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/60217/viewspace-916529/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: cast 的问题
请登录后发表评论 登录
全部评论
  • 博文量
    48
  • 访问量
    500600