如何提高MS-SQL資料庫的讀取速度 |
答題得分者是:P.D.
|
leonli80
一般會員 ![]() ![]() 發表:29 回覆:27 積分:11 註冊:2006-08-01 發送簡訊給我 |
|
GrandRURU
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
一、超頻
二、買更高頻的cpu 以上是屁話,別理我… 如果是既然是大量資料 或許可以採用分批讀取的方式來處理 MySQL有內建處理方法 DBX元件也有相關設定 ADO和MSSQL你可能要在搜尋一下囉 ===================引 用 leonli80 文 章=================== 同樣的一支程式原來使用Paradox資料庫,現在使用MS-SQL資料庫,在同一臺機器上測試發現使用MS-SQL資料庫的程式在執行的時候CPU的占用率很大(特別是在從資料庫中取數據出來將畫面刷新、存入大量資料的時候),程式執行起來速度比較慢。 1、目前想試一下,將資料庫中部分基本資料讀入內存中進行操作,省得每次都從資料庫中讀取,看是否可以提高程式的執行速度。 2、請問基本資料在程式啓動的時候一次讀入內存中,應該以什麽形態存放。 |
ycl2005
一般會員 ![]() ![]() 發表:15 回覆:14 積分:5 註冊:2005-10-01 發送簡訊給我 |
|
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
最基本的功課
1.select 限制筆數, 或縮小筆數範圍(where xxx) 2.select 少用 * (select * from xxx), 這會造成 sql 解譯的負擔, 欄位越多越明顯, 要用的欄位 select f1, f2, f3 就好了 ===================引 用 leonli80 文 章=================== 同樣的一支程式原來使用Paradox資料庫,現在使用MS-SQL資料庫,在同一臺機器上測試發現使用MS-SQL資料庫的程式在執行的時候CPU的占用率很大(特別是在從資料庫中取數據出來將畫面刷新、存入大量資料的時候),程式執行起來速度比較慢。 1、目前想試一下,將資料庫中部分基本資料讀入內存中進行操作,省得每次都從資料庫中讀取,看是否可以提高程式的執行速度。 2、請問基本資料在程式啓動的時候一次讀入內存中,應該以什麽形態存放。 |
aftcast
站務副站長 ![]() ![]() ![]() ![]() ![]() 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
我也補充三個:
1/ 要建立index,非常重要! 2/ update/insert時不要非常多筆,必要時分幾次下update/insert指令… (因為有rollback的問題) 3/ 若沒有太多資料同步問題,或者是單機等…建議select 指令可 加入 with no lock 的hint (詳查help或google) 「必殺技」 個人過去在某電信業者做過資料庫管理師,用的也有一部份是mssql,很沒問題 ( 你想想每分鐘有多少call一起進線…) 所以正確的使用才是重點!
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan
編輯記錄
aftcast 重新編輯於 2009-10-07 18:07:05, 註解 無‧
|
leonli80
一般會員 ![]() ![]() 發表:29 回覆:27 積分:11 註冊:2006-08-01 發送簡訊給我 |
我是在做餐飲POS系統的,而且是網路版的(LAN網)。
1、當進入畫面的時候,要從服務器去刷新所有桌台的情況。所以有2,3個Table要做ReOpen的動作 2、當選擇某一個桌台進入時,也要去ReOpen2,3個Table以取得目前最新的桌台資料。 目前測試在資料庫資料不多的情況下,每次ReOpen的動作也會用到1秒多鍾的時間,客戶感覺有點慢。 工具: D7 資料庫:MS-SQL SERVER2000 SP4 連接方式:ADO
編輯記錄
leonli80 重新編輯於 2009-10-07 23:28:18, 註解 無‧
|
TWY
高階會員 ![]() ![]() ![]() ![]() 發表:2 回覆:133 積分:152 註冊:2009-09-02 發送簡訊給我 |
MSSQL 其實效能是不錯的,且你的應用看起來只有選出一個店點資料量,應該不大才是,我的經驗感覺一般應該都可在0.0x 秒選出。
Performance Tuning 是門學問,上面眾多前輩的經驗你可以好好思考一下,有時不能只光看一個點,硬體等級、程式寫法、外在系統環境(是否有其他系統或程式在跑)等等皆要一併考量。 你提到資料選出要做桌面刷新動作,也有可能是在那個動作佔用掉時間,你可以在程式各階段埋下 Log 抓出每一個步驟時間來觀察,釐清哪個步驟花的時間最多。 若確認了是 SQL 抓取資料花的時間最多,若願意的話將 SQL & Schema 等必要資訊 Post 上來大家可以給你些意見。 ===================引 用 leonli80 文 章=================== 我是在做餐飲POS系統的,而且是網路版的(LAN網)。 1、當進入畫面的時候,要從服務器去刷新所有桌台的情況。所以有2,3個Table要做ReOpen的動作 2、當選擇某一個桌台進入時,也要去ReOpen2,3個Table以取得目前最新的桌台資料。 目前測試在資料庫資料不多的情況下,每次ReOpen的動作也會用到1秒多鍾的時間,客戶感覺有點慢。 工具: D7 資料庫:MS-SQL SERVER2000 SP4連接方式:ADO |
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
我也寫過餐飲pos系統但失敗, 失敗原因
1.電腦處理速度不夠快, 每一筆結帳約3秒鐘(不含輸入), 櫃台人員嫌慢, 他們平均一張單1.5秒 2.假日人多, 有時電腦會有狀況, 造成前台大混亂 3.該店是牛排館 ===================引 用 leonli80 文 章=================== 我是在做餐飲POS系統的,而且是網路版的(LAN網)。 1、當進入畫面的時候,要從服務器去刷新所有桌台的情況。所以有2,3個Table要做ReOpen的動作 2、當選擇某一個桌台進入時,也要去ReOpen2,3個Table以取得目前最新的桌台資料。 目前測試在資料庫資料不多的情況下,每次ReOpen的動作也會用到1秒多鍾的時間,客戶感覺有點慢。 工具: D7??? 資料庫:MS-SQL SERVER2000? ?SP4??連接方式:ADO |
tuga
高階會員 ![]() ![]() ![]() ![]() 發表:16 回覆:109 積分:120 註冊:2002-07-13 發送簡訊給我 |
|
leonli80
一般會員 ![]() ![]() 發表:29 回覆:27 積分:11 註冊:2006-08-01 發送簡訊給我 |
|
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
heartgame0
一般會員 ![]() ![]() 發表:2 回覆:29 積分:11 註冊:2008-07-28 發送簡訊給我 |
如果用xeon cpu,就可以確定慢不是硬體問題!
sql server 硬體本來就要比較高。有看過4核心的,還是一樣,叫資料表出來要好幾秒, (也有可能是sql還沒進展到4核吧,我猜的) 資料不多喔!這就跟寫法有關係了吧。唉,他是趕時間寫出來的,也沒辦法吧!我覺得啦。 -----index很重要,但是好像只有查詢、排序用到!全部資料叫出來,不知道用不用的到,我覺得這個跟叫出來的元件有關係吧。 前台要快!3秒算慢????應該不是指全部慢,發票出來就要3秒,抬頭統編(就算先印,一張發票不短喔)! 一般點餐、餐廳好像沒有用發票,好像只看過一、二家有。 人工,按計算機都要多少秒!!!手寫發票要多久呀!!! 大部份人都跟收銀機比速度!!如果剛開始用軟體當然是收銀機快, 但是,有客戶的小姐用軟體一陣子就會快的跟收銀機一樣。(軟體也可以像收銀機做法) 這時會有兩種狀況。 1、小姐會用了,但是人員流動快,換小姐又慢了! 2、一開始要說服客戶說,熟了會比收銀機快,很難說的過。(軟體可以用的資訊、統計報表比較多) 這時就要看客戶取捨了。 客戶要不會離職的人學,才會一直都很快。且客戶要重視報表、統計分析資料的,用軟體才不是浪費錢。 (我們大部份的客戶都沒有,目前只有遇到一、二個是真的善用軟體,用的很開心的)---唉! 目前電腦不能解決((((人的問題))))),用心用電腦的客戶不多,都是希望電腦萬能,希望廠商會幫客戶的電腦變成萬能。 但,我相信,會改變。已經有在進步了!!!
------
資訊業是永遠不能停止學習的行業! 但是進步都只是一點點一點點! ==可以不用理我!因為我的程度只有2成,或許不到!! ==我只會拉拉元件,打打迴圈,打打條件判斷,連連資料庫,rs232送送訊號,印表機簡單列印。 只有寫寫小小的點餐軟體(為何想寫,因為叫人家改的小東西,都ooxx,是會付錢的又不是沒錢,但是理由還是一堆)
編輯記錄
|
enta
一般會員 ![]() ![]() 發表:34 回覆:43 積分:15 註冊:2003-09-29 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |