ITPub博客

首页 > Linux操作系统 > Linux操作系统 > CURSOR_SHARING 含义

CURSOR_SHARING 含义

原创 Linux操作系统 作者:ljm0211 时间:2012-06-20 15:27:36 0 删除 编辑
不使用绑定变量将增加语句分析,除了消耗CPU时间外,还会增加字典高速缓存上的闩锁。

CURSOR_SHARING

CURSOR_SHARING参数缺省为EXACT,若指定为FORCE,则优化器可能将语句中所有的常数转换为绑定变量,虽然减少了语句分析,但是也会带来如下副作用:

优化器可供利用的信息可能减少,从而改变执行路径,例如条件中对于某个特定值索引有较好的选择性,改为绑定变量时优化器并不会发现这一点。

查询输出格式发生变化。虽然返回的数据长度不变,但列的长度可能改变。例如对于SELECT id, ‘tom’ name from emp; name应该为VARCHAR2(3),但是由于‘tom’被改为绑定变量,则可能name的显示长度变为32.

查询计划更难评估。由于语句的改变,EXPLAIN PLAN看到的查询与数据库看到的可能不一致,从而使AUTOTRACE等的输出与实际执行路径不一致。

因此,完善的应用系统不应当依靠CURSOR_SHARING来提高效率,仅能作为权宜之计。

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

请登录后发表评论 登录
全部评论

注册时间:2009-05-14

  • 博文量
    272
  • 访问量
    441982