討論區快速選單
知識庫快速選單
討論區最近新進100則主題 程式設計俱樂部Facebook粉絲團
[ 回上頁 ] [ 討論區發言規則 ]
請問如何解決INFORMIX執行中SQL語法不完整之問題
更改我的閱讀文章字型大小
作者 : alen5207(alen)
[ 貼文 2 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/10/16 上午 11:48:46
本公司ERP系統採用IBM的INFORMIX資料庫,同時上線人數最高有300人,近日重要的大程式常常出現卡住的問題,用onstat -g sql語法去查該使用者執行的程式時,會出現以下的狀況:
Informix Dynamic Server Version 7.30.UC6 -- On-Line -- Up 15 days 18:03:02 --
686432 Kbytes

Sess SQL Current Iso Lock SQL ISAM F.E.
Id Stmt type Database Lvl Mode ERR ERR Vers
196325 mis DR Not Wait 0 0 6.04

Last parsed SQL statement :
 select sum ( onhand1 - preqty1), sum ( onhand2 - preqty2) from invbal,
   invwh where ( itnbr =? or itnbr =?) and invbal.wareh = invwh.wareh an
最後一段的an並不是我沒COPY完全或是程式語法寫錯,而是確實該SQL語法執行時此段就缺少後面的語句,但是不是每次都會在同一段語法上出現此問題,都是隨機出現的,有時甚至只有SE就沒有了,若當時此table的LOCK模式是PAGE或是TABLE,輕則幾個使用者不能用;重則整個ERP系統都卡住了,此問題很令我煩惱,程式並沒有錯誤,因為這麼明顯的語法錯誤根本COMPILE會過不去,還請教有沒有專業人士遇過或是解決過此相關問題,給小弟一點意見謝謝~
作者 : page_liu99(page)
[ 貼文 2 | 人氣 9 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/10/19 上午 10:05:49
變數長度不夠,印象中習慣性寫法會將sql指令丟給一長串變數,再去 PREPARE,變數長度不夠
故執行時才會只捉到一半,compile當然不會有錯
作者 : alen5207(alen)
[ 貼文 2 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/10/19 下午 09:59:47
感謝您的回覆意見,您提出的看法我也有思考過,但是相信您使用過也了解不一定要組SQL字串在文字變數中才能在INFORMIX中下SQL語法,我也可以直接下SQL語法把資料INTO給變數使用,但是這個問題也會發生在這類直接使用在程式碼中的SQL子句中,最近甚至於有離譜到只出現如下的執行:
Informix Dynamic Server Version 7.30.UC6 -- On-Line -- Up 16 days 22:03:02 --
236862 Kbytes

Sess SQL Current Iso Lock SQL ISAM F.E.
Id Stmt type Database Lvl Mode ERR ERR Vers
195235 mis DR Not Wait 0 0 6.04

Last parsed SQL statement :
 se
上面不是我沒有打完SQL子句,而是真的只有「SE」兩個BYTE的字而已,程式就整個卡在這裡了,我有嘗試透過修改INFORMIX的參數將運算在RAM中的範圍縮小,加大IO進硬碟的機率,看是否能減少RAM寫到溢位的可能問題,因為只有這幾隻要跑大資料的程式會有這樣的錯誤,其他報表等小程式並不會有這種狀況發生,還請教各位前輩有沒有這類經驗可以指導後進修改那些參數或是用甚麼方向修正我的語法,因為遇到這個問題只能KILL掉程序,但是KILL的話ROBACK的指令根本不會運作,資料依舊有機會UPDATE或INSERT不完整,再麻煩前輩們了!
 板主 : 徵求中
 > Informix 資料庫 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Informix 資料庫 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Informix 資料庫
1 kk 1340 
2 哈囉齒齒 430 
3 hedge 290 
4 Chelonia Mydas 250 
5 Foris 250 
6 wenli 200 
7 old cat 160 
8 大頭 140 
9 chyang 100 
10 sansui 90 
Informix 資料庫
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
4.589844E-02