2011年6月30日 星期四

SSIS新流程轉換元件-Balanced Data Distributor

  最近在網路上看到有人討論BDD(Balanced Data Distributor),心裡想說這是什麼啊,查了一下原來是SSIS新的資料流程轉換元件,2011/6/7才增加的,功能似乎是利用多核心的技術來平行處理封裝的資料流,可充分發揮Server上多處理器與多核心的效能喔

  詳細說明請參考The “Balanced Data Distributor” for SSIS,裡面也有提供下載位址,安裝也很簡單,使用更簡單,根本不用設定,我自己測試的結果,將三百萬筆的文字檔資料轉到資料庫去,使用BDD的確有比較快喔
  什麼情況適合使用BDD呢?

1. 來源有大量的資料,因為資料少用起來沒感覺押,還有可能更糟
2. 從資料來源讀取的速度比寫入目的地快的情況,尤其適用效能瓶頸是發生在目的地時,像是將文字檔寫到SQL Server就可用
3. 資料有順序相關性的就不適用,因為一個來源會被分成到好幾個資料流,原有的順序就亂掉了
  
  我打算將有三百萬筆資料的文字檔轉入SQL Server,然後一個有用BDD,一個不用BDD作比較,測試結果如下,首先是沒有使用BDD狀況

  花了15.718秒

  下面是使用BDD的狀況,我拆成4個目的地,使用起來只是將原來的OLE DB目的地,再多複製3個而已,最後再拉資料流,執行後BDD就會自動將三百萬筆分流到四個目的地去,因為不用設定,所以沒法控制每個要分流的比率

  僅花了9.172秒,看來利用BBD平行處理效能果然比較好喔
  
  接下來看CPU的使用率比較吧,左邊的是有用BDD的狀況,看的出來有沒有用BBD差滿多的,有用的才能充分多揮多核心的效能啊


  另外我一開始是在單核的測試環境上試,試不出來有什好處,後來才找一台比較強的測試機來試,才看出差別,供各位參考,如內容有錯歡迎指證

0 意見:

張貼留言