ora-03115 ORA-03115 unsupported network datatype or representation

公司的一个已上线的应用数据库突然问题,提示:ora-03115 ORA-03115 unsupported network datatype or representation,可以确定的是应用没有发生变更,前段时间对数据库做了一些调整。

数据库是10g,运行在aix上。

由于不是我负责的应用,因此没办法看到警告日志,不确定具体产生的原因,但肯定和调整某些参数有关系,联系调整的人员后得知,改动了参数cursor_sharing=FORCE。

在网上查询错误的原因,摘录如下:

Applies to:
Oracle Net Services - Version: 10.2.0.3
This problem can occur on any platform.
Connections to the database
Symptoms
Connections that were working, start to fail with error ORA-03115: unsupported network datatype or representation. This can happen when the database is under heavy load or a few hours after the database has been re-started.  Setting database parameters SHARED_CURSORS=EXACT and SESSION_CACHED_CURSORS = 0, does not help. Flushing the shared pool does resolve the problem for a short while.

查询该参数的意义,如下:

CURSOR_SHARING

参数类型:字符串
语法:CURSOR_SHARING = {SIMILAR|EXACT|FORCE}
默认值:EXACT
参数类别:动态:ALTER SESSION,ALTER SYSTEM
CURSOR_SHARING用来指定SQL语句如何共享游标。值如下:
FORCE:如果SQL表述只是字面上的不一样,而效果是一样的,则共享游标;
SIMILAR:如果SQL表述只是字面上的不一样,效果和查询计划的维度都一样,则共享游标。这比FORCE多了一个限制:查询计划的维度;
EXACT:仅当SQL表述在字面上完全相同时才共享游标

  CURSOR_SHARING参数缺省为EXACT,若指定为FORCE,则优化器可能将语句中所有的常数转换为绑定变量,虽然减少了语句分析,但是也会带来如下副作用:
  优化器可供利用的信息可能减少,从而改变执行路径,例如条件中对于某个特定值索引有较好的选择性,改为绑定变量时优化器并不会发现这一点。
  查询输出格式发生变化。虽然返回的数据长度不变,但列的长度可能改变。例如对于SELECT id, ‘tom’ name from emp; name应该为VARCHAR2(3),但是由于‘tom’被改为绑定变量,则可能name的显示长度变为32.
  查询计划更难评估。由于语句的改变,EXPLAIN PLAN看到的查询与数据库看到的可能不一致,从而使AUTOTRACE等的输出与实际执行路径不一致。
  因此,完善的应用系统不应当依靠CURSOR_SHARING来提高效率,仅能作为权宜之计。

解决方法:

ALTER SYSTEM SET cursor_sharing = FORCE SCOPE=BOTH;

alter system flush shared_pool;

 

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

转载于:http://blog.itpub.net/352988/viewspace-616418/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值