資料傳輸效能改善

在目前公司我有開發一套異質資料庫資料拋轉系統,在Server及Client之間做資料拋轉,提供給各專案搭配使用。

我將傳輸資料轉成json字串儲存在DB的一個nvarchar(max)欄位,但nvarchar(max)有長度限制,因此一筆record中能包含的傳輸資料有限。在傳輸資料量少的時候,可能只要幾筆record就能打包完,但只要傳輸資料量到達幾十萬筆時,產生的record數量就很可觀,傳輸花費的時間也成倍數成長。

與同事討論過後,發現效能瓶頸主要是卡在DB。當資料量少時,只要access幾次DB就能完成傳輸工作,但只要資料量變多,DB access次數隨之增加,整體花費時間也就暴增。我嘗試將傳輸資料不分割,全部存成json檔並壓縮,傳輸流程整體花費的時間就大幅下降了。