2012-02-10 60 views
0

我已經編寫了一個VBScript以將數據從Active Directory提取到記錄集中。我現在想知道將數據傳輸到SQL數據庫的最有效方法是什麼。使用VBScript將Active Directory提取到SQL數據庫中

我被撕裂;

  • 將其寫入到Excel文件然後激發SSIS包導入或...
  • 內VBScript中,通過在內存中的數據集迭代並提交3000+ INSERT命令到SQL數據庫

後面的選項是否會導致與數據庫通信的3000次以上的往返行程,因此是兩個選項中較慢的選項?

+1

將其寫入CSV帖子。 – Fionnuala 2012-02-10 12:25:21

回答

2

按行發送插入行始終是最慢的選項。這就是所謂的通過Agonizing Row或RBAR的行。如果可能的話,你應該避免這樣做,並利用基於集合的操作。

您的其他選項,寫入到一箇中間的文件是一個好的選擇,我在你應該挑CSV,而不是Excel中,如果你要選擇該選項的意見與@Remou同意。

我會建議第三個選項。 VB腳本中已經包含了VB中的設計。您應該能夠輕鬆地將其轉換爲SSIS中的腳本組件。創建一個SSIS包,添加一個DataFlow任務,將一個腳本組件(as a datasource {example here})添加到流中,將您的字段寫出到輸出緩衝區,然後添加一個sql目標並保存寫入中間文件的步驟。這也更安全,因爲您在過程中的任何地方都沒有在磁盤上以明文形式存儲AD數據。

0

你不提多久,這將運行或者如果你有一定的時間窗口內運行,因此它是不明確的,業績甚至是一個問題在這裏。 「緩慢」本身並不意味着任何事情:如果時間窗口是一個小時,運行30分鐘的過程可以完全接受。

只寫最簡單,最易維護的代碼就可以把工作完成,並從那裏走。如果它在可接受的時間內運行,那麼你就完成了。如果沒有,那麼至少你有一個乾淨,功能正常的解決方案,你可以進行配置和優化。

相關問題