我正在設置一個用於數據表比較的新系統。這裏發生了什麼:計算數據表和臨時存儲之間的差異
我的軟件查詢第三方數據庫,我們沒有選擇寫入數據或改變結構。結果是一個DataTable。此時,此數據表同步,然後以XML格式保存到磁盤。下一次同步時,查詢再次返回一個DataTable。然後,我們從磁盤加載存儲的數據表並開始計算diff:新的,已更改和已刪除的記錄。只有差異記錄被同步,並且存儲的XML被最新的查詢取代。
這工作正常,但性能較差的查詢較大。所以我們希望將數據切換並存儲在SQL Server(2008及更高版本)數據庫中。爲此,我們正在尋找最佳實踐。我們想到的一件事就是計算記錄的某種散列,並用它來檢查記錄是否發生了變化。該系統必須爲所有類型的DataTables工作,所以沒有嚴格的列結構。
SQL Server支持這樣的事情嗎?或者更好地計算代碼中的散列並將其存儲到SQL中?我們認爲沒有必要存儲整個記錄;新的記錄將在源表中。對於修改後的記錄,只需使用散列查找更改即可,對於已刪除的記錄,足以存儲記錄的主鍵以便能夠刪除目標系統中的記錄。
對不起,但我不知道你的意思。你可能有某種例子嗎? – Jasper