欢迎投稿

今日深度:

oracle 客户端版本较低导致 BAD SQL,oraclebad

oracle 客户端版本较低导致 BAD SQL,oraclebad


环境:

生产系统是一个在线用户10K的OLAP系统(11g的RAC双节点),某一天用户单位发现扫描程序很慢。

查看监控,Node1,IO很高,心跳流量也很高

立即着手分析:

1.本来生产客户端全部链接Node1,此时发现部分客户端做了Failover,Node2出现生产客户端,很不正常;

2.在Node1上,kill 掉引起IO较高的session客户端,通知用户单位暂时不要开启;

3.Kill Node2上的用户,建议其重新打开程序,异常消失。

分析原因:整个事件,Node1 的Bad Sql引起资源紧张,一些无法被Node1响应的用户,Failover到Node2,此时DRM起作用了,扫描更慢了!

最终解决办法:问题肯定出在客户端,类比正常客户端发现该客户端为9i,随后现场工程师升级客户端到11g问题解决;

root case:客户端程序封装的SQL,在9i客户端出现BAD SQL

事件总结:11g的企业版软件最好用10g及以上的客户端软件去访问!


安装了oracle客户端,安装选择类型是instantclientpl/sql打开时,报错如下图,问怎解决?

虽然你的不一定是64位的,但是可以参考这个:

使用PL/SQL Developer连接OracleX64版本:
•1. 下载32位Oracle InstantClient,并展开到某目录,例如C:\instantclient-basic-nt-11.2.0.2.0;
•2. 将系统的tnsnames.ora拷贝到该目录下;
•3. 在PLSQL Developer中设置Oracle_Home和OCI Library:
ToolsPreferencesOracleConnection:
Oracle_Home:C:\instantclient-basic-nt-11.2.0.2.0
OCI Library:C:\instantclient-basic-nt-11.2.0.2.0\oci.dll
•4. 在PLSQL Developer目录下编辑如下bat文件,替换其快捷方式,启动PLSQL Developer:
@echo off
set path=C:\instantclient-basic-nt-11.2.0.2.0
set ORACLE_HOME=C:\instantclient-basic-nt-11.2.0.2.0
set TNS_ADMIN=C:\instantclient-basic-nt-11.2.0.2.0
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
start plsqldev.exe
 

以下oracle客户端工具哪个执法SQL语句更快一些

这些工具速度上都是一样的,执行的效率、速度取决于你的代码质量以及数据库优化的情况。另外你要是在sqlplus上写一个存储过程和在PL/SQL Dev上写一个存储过程 你看那个快?
退一万步讲,即便sqlplus是oracle自带的数据库连接工具,假定执行起来会略微快千分之几秒,你要用多长时间来把这时间攒够一天,然后休息啊?
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/3620.html NewsArticle oracle 客户端版本较低导致 BAD SQL,oraclebad 环境: 生产系统是一个在线用户10K的OLAP系统(11g的RAC双节点),某一天用户单位发现扫描程序很慢。 查看监控, Node1,IO很高,心跳流量也很高...
评论暂时关闭