簡體   English   中英

使用VBScript將Active Directory提取到SQL數據庫中

[英]Extract Active Directory into SQL database using VBScript

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

我被撕裂了;

  • 將其寫入excel文件,然后觸發SSIS包以導入它或...
  • 在VBScript中,遍歷內存中的數據集並向SQL數據庫提交3000+ INSERT命令

后一種選擇是否會導致3000多次往返與數據庫通信,因此兩種選擇中的較慢?

逐行發送插入始終是最慢的選項。 這就是所謂的Row by Agonizing Row或RBAR。 如果可能,您應該避免這種情況並利用基於集合的操作。

你的另一個選擇,寫一個中間文件是一個很好的選擇,我同意@Remou在評論中你應該選擇CSV而不是Excel,如果你打算選擇這個選項。

我會提出第三種選擇。 您已經在VBscript中包含了VB中的設計。 您應該能夠輕松地將其轉換為SSIS中的腳本組件。 創建一個SSIS包,添加一個DataFlow任務,將一個腳本組件( 作為數據源{example here} )添加到流中,將您的字段寫入輸出緩沖區,然后添加一個sql目標並保存自己寫入的步驟一個中間文件。 這也更安全,因為在此過程中,您在任何地方都沒有以明文形式存儲AD數據。

你沒有提到這種情況經常運行的頻率,或者你是否必須在某個時間窗口內運行它,因此不清楚性能在這里是否是一個問題。 “慢”並不意味着任何事情:如果時間窗口是一小時,那么運行30分鍾的過程是完全可以接受的。

只需編寫最簡單,最易維護的代碼即可完成工作並從那里開始。 如果它在可接受的時間內運行,那么你就完成了。 如果沒有,那么至少你有一個干凈,有效的解決方案,你可以分析和優化。

如果您已經在數據集中擁有它,並且它是SQL Server 2008+創建用戶定義的表類型並將整個數據集作為原子單元發送。

如果你去SSIS路線,我有一個帖子覆蓋Active Directory作為SSIS數據源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM