2009-04-09 19 views
0

我正在運行一個網站,幫助管理醫療診所的大量信息。部分應用程序需要從Excel電子表格上載患者文件。患者表有大約100萬條記錄,並且Excel導入需要一次插入或更新10k,20k,30k患者記錄。所有的時間其他客戶都在衝擊着桌子。處理時間不如減少對數據庫的爭用。你會推薦什麼樣的策略?上傳大量的數據到生產SQL服務器,爭奪最小

我知道其他網站有效地做到這一點。 Salesforce允許您一次上傳大量數據。

回答

0

如果每一行的更新是獨立的,運行一個循環,得到了行,更新表,拿到另一行,...

然後,你可以把一個延遲循環慢下來,以避免影響主站點(某種負載指標可以用來實時調整)。某種形式的令牌環像安裝程序可以用來使多個更新節流在一起。

4

首先將Excel工作表加載到登臺表中,然後決定是更新/插入單個批次中的行還是什麼。

通常,從一個表格插入一百萬行到另一個應該足夠快,以便在服務器處於加載狀態時運行。在插入過程中你會有一個鎖,但它應該是幾秒鐘的事。除非您每分鐘加載數十億條記錄,否則您的upsert操作非常密集,我不認爲這是一個問題。

如果你的upsert很複雜,有很多方法可以做到。您可以插入一個批次,但將生產記錄標記爲不完整,因爲其下屬記錄已更新。您可以將分段行標記爲未處理並批量處理。

+0

如果我可以獎勵多個upvotes這個我會的。 MonkeyBrother,這是你想要關注的人。 – 2009-04-14 12:54:13

相關問題