簡體   English   中英

如何提高向 SSIS 中的表插入數據的性能

[英]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.

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