[問題] 用資料庫比對或是AP比對

作者: smallyou1988   2015-05-31 18:11:54
請問各位大德
假設有兩百個檔案(或更多)
每個檔案筆數是40000(四萬)筆
資料庫資料大約是幾千萬筆
目標是要將每個檔案去碰資料庫內存有的資料,然後做比對
環境只能用 UNIX的/bin/sh 和資料庫
那該怎麼做會比較佳呢?
檔案內容比如說:
number|starttime|endtime|sum
1111|04/01/2015|04/30/2015|10
1111|04/01/2015|04/30/2015|30
2222|04/01/2015|04/30/2015|20
2222|04/01/2015|04/30/2015|40
5555|04/01/2015|04/30/2015|10
9999|04/01/2015|04/30/2015|7
要將檔案的number去和資料庫內的某個table碰number後,得到number2(primary key)
再去其他table用number2做搜尋且加總用量(sum),然後比對!
目前的做法:
寫迴圈一個一個檔案load進資料庫temp table內
用sql去執行比對再unload下來,但是效能不佳(每個檔案都要跑大概15~20分鐘)
temp table加上index似乎也不會變快
改良的想法:
目前我想到的改良作法是一次將資料庫所需資料unload下來
再用程式(可能開五支或更多背景程式)去執行grep之類的
這樣也不會耗太多DB資源
這樣會不會有點多餘或是這是糟糕的想法呢?
是否請大德們可以給點建議或是提示呢?
謝謝 ^^

Links booklink

Contact Us: admin [ a t ] ucptt.com