最近的生活完全處在程式裡頭
早上趕著寫公司的程式,下班回家後趕著處理專題flash的bug
真的還難想像一個已經歷經多次測試的程式還是有bug的存在
不懂為什麼以前沒有發生過的問題,在現在會突然發生呢?
故事是這樣開始的...V3版的程式總算在之前改完所要求的部分
本已為已經沒有自己的事情,
無奈在實際測試時發生了連線過慢的事實
本來這早就可以預測的,因為使用ACCESS免費資料庫
哪能每半秒就同時接受快30幾筆的query呀
於是實驗人總算聽我的話換成了SQL 2005
原來我是推薦SQL 2000的,因為我沒有玩過SQL 2005
照道理來說換個要錢的軟體應該就可以比較穩
沒有想到今天突然接到來信說反而更慢,會LAG
接到這個動畫,我就覺得頭大,因為晚上的休息時間又要不見了
回家後,稍微測試了一下,場景跳來跳去,發現走路並沒有慢到LAG呀
經過確認後,才知道原來LAG的定義是指點選人物時,對話會很慢才出現...
挖勒!!LAG的定義是這樣的嗎?跟我想的完全不一樣
今天整個晚上就痛苦在搞為什麼會慢出現
發現在進行遊戲時,SQL的連線數爆炸了
居然會有上千條的連線同時產生???
讀取人物對話基本上就要執行一行SQL指令
因為已經爆炸了,當然連線就很慢
經過一測再測,一試再試,抽絲剝繭下
發現連線爆炸的原因是我用巢狀迴圈去取資料造成的
我先用程式從A資料表取出a值後,再丟入B資料表取b值
SQL=select a from A
rs = st.executeQuery(SQL)
DO{
SQL2=select b from B where a=rs("a")
rs2 = st.executeQuery(SQL2)
}LOOP
雖然程式執行完了,但因此開了一堆連線卻又都沒有被自動關閉
又這個巢狀迴圈的程式是每0.5秒就要執行一次
幾分鐘後,資料庫連線數就爆炸了...
後來我程式改寫成一次同時去讀取A,B資料表去取出C值來,
就沒有造成連線數爆炸的問題了
事情好像這樣總算被解決了
但是這個問題還是吊詭!!
因為我這個程式早在三年前寫好後就沒有改過了
ACCESS沒有這個問題
那時用SQL 2000沒有此問題
之前有灌一台SQL2005測時也沒有這個問題
怎麼會今天出現這問題呢?????
早上趕著寫公司的程式,下班回家後趕著處理專題flash的bug
真的還難想像一個已經歷經多次測試的程式還是有bug的存在
不懂為什麼以前沒有發生過的問題,在現在會突然發生呢?
故事是這樣開始的...V3版的程式總算在之前改完所要求的部分
本已為已經沒有自己的事情,
無奈在實際測試時發生了連線過慢的事實
本來這早就可以預測的,因為使用ACCESS免費資料庫
哪能每半秒就同時接受快30幾筆的query呀
於是實驗人總算聽我的話換成了SQL 2005
原來我是推薦SQL 2000的,因為我沒有玩過SQL 2005
照道理來說換個要錢的軟體應該就可以比較穩
沒有想到今天突然接到來信說反而更慢,會LAG
接到這個動畫,我就覺得頭大,因為晚上的休息時間又要不見了
回家後,稍微測試了一下,場景跳來跳去,發現走路並沒有慢到LAG呀
經過確認後,才知道原來LAG的定義是指點選人物時,對話會很慢才出現...
挖勒!!LAG的定義是這樣的嗎?跟我想的完全不一樣
今天整個晚上就痛苦在搞為什麼會慢出現
發現在進行遊戲時,SQL的連線數爆炸了
居然會有上千條的連線同時產生???
讀取人物對話基本上就要執行一行SQL指令
因為已經爆炸了,當然連線就很慢
經過一測再測,一試再試,抽絲剝繭下
發現連線爆炸的原因是我用巢狀迴圈去取資料造成的
我先用程式從A資料表取出a值後,再丟入B資料表取b值
SQL=select a from A
rs = st.executeQuery(SQL)
DO{
SQL2=select b from B where a=rs("a")
rs2 = st.executeQuery(SQL2)
}LOOP
雖然程式執行完了,但因此開了一堆連線卻又都沒有被自動關閉
又這個巢狀迴圈的程式是每0.5秒就要執行一次
幾分鐘後,資料庫連線數就爆炸了...
後來我程式改寫成一次同時去讀取A,B資料表去取出C值來,
就沒有造成連線數爆炸的問題了
事情好像這樣總算被解決了
但是這個問題還是吊詭!!
因為我這個程式早在三年前寫好後就沒有改過了
ACCESS沒有這個問題
那時用SQL 2000沒有此問題
之前有灌一台SQL2005測時也沒有這個問題
怎麼會今天出現這問題呢?????
文章標籤
全站熱搜
