iT邦幫忙

0

系統Lag問題

各位高手大家好
因為公司的結帳系統會發生在進入系統後,進行交易第一筆時,經常會有Lag(系統卡住不動)狀況發生
也有時是一陣子未操作電腦後,再進行交易時,也會有Lag狀況發生
(已有將本機電腦的螢幕保護程式與休眠關閉)
結帳系統是以VB開發,搭配SQL Server2005 Express,安裝於 winxp SP3
想請教各位高手,不知是否與資料庫本身設定有關呢 (因為大部份操作交易時都是順暢的)
一直找不到原因,很苦惱呀

看更多先前的討論...收起先前的討論...
yesongow iT邦大師 1 級 ‧ 2015-09-22 09:38:34 檢舉
我覺得這樣很好呀!
這是Feature!
運動前要先暖身,不然硬碟磁頭碰撞,資料沒了還得了!

可別當做是Bug喔!
james386 iT邦新手 5 級 ‧ 2015-09-22 14:17:13 檢舉
有時會Lag 50秒左右,等太久
外獅佬 iT邦大師 1 級 ‧ 2015-09-22 14:24:41 檢舉
工具測試一下你的SQL Server
外獅佬 iT邦大師 1 級 ‧ 2015-09-22 14:51:55 檢舉
看起來是建立SQL Server Connection時造成的問題
如果使用hostname,嘗試改用IP連接
james386提到:
winxp SP3


我是不知道你的系統 USER 有多少個
我只知道 這個 OS 只允許 10 個 SESSION

所以假如你的系統是透過網路給別人用
那你進入系統前,那 10 個 SESSION 佔滿了
系統要連 SQL 只能等待某個SESSION 結束才能夠連接

建議你換 2008 SERVER 會比較好
但如果你是單機作業,那就是硬碟本身的問題了
你裝 SQL 的時候 把資料檔放到系統碟的話,就會有這種問題
SQL 的資料檔不能跟系統碟放一起,甚至要放到另外一顆硬碟
你自己在 TRY 看看
CalvinKuo iT邦大師 7 級 ‧ 2015-09-23 09:19:23 檢舉
版大沒說結帳系統是單機版還是網路版?

網路版有幾個使用者?
網路版發生LAG狀況是所有使用者還是部分使用者?
網路版所有使用者是怎麼連上SQL2005 Express?
SQL2005主機負載狀況,CPU/RAM/DISK有滿載嗎?
james386 iT邦新手 5 級 ‧ 2015-09-23 16:52:20 檢舉
Calvinkuo
結帳系統是單機版的.只有開給一台電腦連接
james386 iT邦新手 5 級 ‧ 2015-09-23 16:53:18 檢舉
jones888
目前資料檔是放在 C槽
我會再Try一下,改放D槽試試
謝謝您
summertw iT邦好手 1 級 ‧ 2015-09-23 22:17:01 檢舉
一般來說,使用SQL Serer會有Lag現像,若排除所有硬體因素時,唯一會造成此一現像大都是你的Transact-SQL語法使用時機不好,另外,你的連線方式也是一大學問。
因為樓主給的資訊太少,不便在這裡作太多的猜測,總之,若是已經很久遠的程式,那就買台超強的PC來充當你的伺服器,再加上SSD的超快硬碟機,這樣應該可暫時解決Lag的問題。

另外一個現像是你使用SQL Express版本,太多連線(已超過約束連線)數目,也會造成此一現像。
註:連線數目多,不代表多人連線,這跟寫程式方法有關。

再次說明,若排除所有硬體問題,還是Lag的話,那就是程式寫的有問題啦....別想太多啦...
2
wwx
iT邦好手 1 級 ‧ 2015-09-23 11:43:45
最佳解答

既是固定發生的問題, 於發生時 把工作管理員打開來看,
觀察以下欄位先釐清是什麼 程序/CPU/記憶體/IO問題,
CPU,CPU時間,記憶體使用量,虛擬記憶體使用量,I/O讀取位元組,I/O寫入位元組

特別是 I/O讀取位元組, 如果總是特別大量,
要看是否有防毒程式,有的話先關閉防毒再觀察是否改善,
若確定能改善且確定有需要防毒,
則需適當的對防毒程式作排除設定,

先找出原因後才能決定改善的方式

0
Albert
iT邦高手 1 級 ‧ 2015-09-22 08:25:28

一般結帳系統
傳統寫法是抓到 AP Server/Client 去 Update
大量 Update 方式會很慢
我們在幫 ASUS 寫這種功能時
都是使用 INSERT 在暫存檔
複雜運算都是不去 UPDATE , 採用 SUM 方式
再 TRUNCATE 結帳檔
再 INSERT 到結帳檔
當然 Oracle ERP 是 Insert 到 Interface 檔

Albert iT邦高手 1 級 ‧ 2015-09-22 09:02:59 檢舉

大量 update 會引發 record / table lock

0
newkevin
iT邦高手 1 級 ‧ 2015-09-22 14:26:52

開個測試帳號
寫個程式
自動輸入資料
然後間隔幾分沒輸入就會Lag(系統卡住不動)狀況發生
然後就設那個少一分
應該可行吧

我要發表回答

立即登入回答