![](/img/trans.png)
[英]Increase performance of SSIS Package dumping data from Excel to SQL Server table
[英]How to increase the performance for inserting data to an table in SSIS
我有一個包含 7 列的30 萬(300,000)條記錄的文本文件。 我將數據插入臨時表,然后執行業務邏輯以將數據從那里插入到多個表中。
該文件如下所示:
01|000001111|27/04/2011|12/01/2012|ISDF|AB|1
02|000002222|09/01/2010|29/01/2010|CfGH|CV|1
03|000003333|19/07/2005|09/07/2007|TBRF|CC|1
登台表稱為Stagetable
。
我正在使用平面文件源和 OLEDB 目標,它需要 7 個多小時才能將數據插入暫存表。 我需要提高性能。
我是第一次使用 SSIS package。
任何關於我如何提高性能的建議都會很棒。
謝謝王子
以下應該有所幫助;
- 在處理之前將文件移近目標(即在同一個盒子上)以避免網絡延遲
-從 SQL 服務器而非 Visual Studio 中部署並運行 package
-使用 SQL 服務器目標,而不是 OLE DB 作為更快加載的目標
-關閉目標組件的約束檢查
-檢查目標表沒有在加載時發生昂貴的觸發器
- 如果不需要執行任何轉換,請考慮使用批量插入任務
3 lacs 只有 300000,字段/行看起來也不是特別寬。 這是一個很小的數字,不會引起任何問題。
試着找出瓶頸在哪里——源頭還是目的地? 如果源是瓶頸,你可以拆分文件並將它們暫存到單獨但相同的暫存表中,如 stg_1、stg_2 等,然后並行加載它們。
如果目的地是瓶頸,您可以使用平衡數據分發器,並將它們放入不同的暫存表中。
同樣,所有這些對於僅 30 萬行來說似乎都有些矯枉過正。
確保臨時表上沒有任何索引。 我們很樂意聽取您的意見,您嘗試了哪些方法、哪些方法奏效了,以及您是如何解決的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.