簡體   English   中英

腳本組件中具有自定義加密dll的SSIS數據流非常慢

[英]SSIS Data Flow with custom encryption dll in script component VERY SLOW

我正在進行數據轉換,其中舊數據庫中的敏感數據未加密。 我們正在構建一個新的數據庫和前端應用程序,並且在轉換數據時,需要將兩列加密,因為它們需要加載到新數據庫中。 我正在從需要的3列(唯一ID和需要加密的2列)的登台表(OLE DB SQL數據庫連接)中使用簡單的選擇查詢,然后有了包含C#代碼的腳本組件引用GAC中的自定義dll,然后處理這些行,然后將其加載到另一個具有ID的登台表(OLE DB SQL數據庫)中,並在第二列中使用加密的值。 我有230萬行要處理,並且我在目標登台表中使用了帶有TABLE LOCK和CHECK CONSTRAINTS(實際上沒有任何內容)的快速加載選項。 但是,此過程需要14到24小時才能完成! 加載時間的差異來自兩種不同的環境,一種是我的PC(運行速度更快),另一種是我的虛擬服務器加載了更多的內存,而運行速度卻慢得多。 無論如何,這兩個時間都不是一件好事,我只是想看看我是否可以做些什么來顯着加快速度?

這是腳本組件中的C#腳本:

[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{
  public override void Input0_ProcessInputRow(Input0Buffer Row)
   {
       Row.ClaimNumberEncr = DAV.CMS.Core.Common.Crypto.EncryptFromStringAES (Row.ClaimNumber, "abc123defg").Entity; 
       Row.SSNEncr = DAV.CMS.Core.Common.Crypto.EncryptFromStringAES (Row.AlternateClaimantID, "abc123defg").Entity;
    }
}

我已經研究了兩種環境,以及BINGO,我的筆記本電腦實際上有4個CPU,而虛擬服務器只有2個。雖然我的筆記本電腦只有8GB的內存,而VS有18GB,顯然區別在於CPU的數量。 我將讓它們使VS上的CPU倍增,看看是否有幫助。 謝謝您的建議,我想我們只需要處理時間就可以了,因為它是基於加密的時間,但是請嘗試增強我的VS並使其盡可能快。

暫無
暫無

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

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