oracle 用戶端版本較低導致 BAD SQL,oraclebad

來源:互聯網
上載者:User

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內建的資料庫連接工具,假定執行起來會略微快千分之幾秒,你要用多長時間來把這時間攢夠一天,然後休息啊?
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.