看板 C_Sharp 關於我們 聯絡資訊
是這樣的 我有8萬~40多萬個字串 要去幾百個文章(在data table中)中比對 有沒有出現 於是就使用datatable的select 比對8萬多次 但是真的慢到我以為他當掉了 不用messagebox秀出來 我還以為出錯 根本跑不完 我索性自己手寫 看有沒有contain這個字串 跑8萬多次還可以接受 大概1x秒 但到40萬次就有點久了 google一下 說是用data.row.find會比較快 但是我一定要用like %xxx%來比對才行 所以想問一下 有沒有人有類似的經驗 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 119.14.176.210
Eleganse:個人經驗:資料庫存取效率問題多半與(1)取出的資料集大小 10/21 13:47
Eleganse:(2)存取的次數 有關 10/21 13:48
Eleganse:也就是說 如果你經常向資料庫要一個上百萬筆的DATASET 10/21 13:48
Eleganse:或是說你用迴圈跑上千上百次SQL命令字串 10/21 13:49
Eleganse:那是怎麼樣也快不起來的 就算你跑得起來 有天有個使用者 10/21 13:50
Eleganse:家裡電腦比較爛 或是頻寬比較低 整個網頁或程序執行 10/21 13:50
Eleganse:超過10秒 使用者很難不認為這個程序當掉了 10/21 13:51
Eleganse:處理效率會變快 就是要減少上面(1)或(2) 10/21 13:52
Eleganse:釜底抽薪將效率優化的觀點 鎖定為上述2者 10/21 13:54
Eleganse:並自已寫出符合你自已要求的程式 或去找相關指令或方法 10/21 13:54
Eleganse:註:存取效率與原始資料叢大小較無關係 10/21 13:58
Eleganse:(也就是你文中的數十萬筆字串或數千篇文章) 10/21 13:58
Eleganse:優化搜尋法的撰寫 就是要減少從原始資料叢拿出來的東西 10/21 13:59
cloudsan:這種應該要作索引會比較好處理..... 10/22 01:58
yeo1987:要不要先對文章進行預先處理...=.=... 10/22 23:21
asd823:預處理應該會比較快...比竟字串比對本來就天殺慢... 10/23 16:56
charles0203:預先處理大概是什麼事情呢? 10/26 07:16