2017-07-24 269 views
1

我有一個SSIS包作爲項目的一部分。當通過SSIS從我的機器運行時,處理15M記錄大約需要15分鐘。 一旦部署到服務器上的目錄並運行完畢,現在已經超過2個小時。SSIS查詢在目錄作業中運行非常緩慢。 wait_type:ASYNC_NETWORK_IO

這個特定的軟件包正在服務器本身上移動數據(處於暫存狀態),所以沒有網絡瓶頸。

,這裏是來自SP_WHO3一些統計數據:

CPU_TIME:484482

requested_memory_kb:2469520

granted_memory_kb:2469520

ideal_memory_kb:14508048

query_cost:85.3073051231772

wait_type:ASYNC_NETWORK_IO

查看服務器上的資源監視器,我發現磁盤I/O非常高(當然),大部分是系統進程,大約爲190,000,000 B/Sec,進入遠第二是在sqlserver.exe〜300000 B /秒

封裝被配置成與BufferTempStoragePath設定爲C:\ TEMP \ DefaultBufferMaxRows = 10,000 DefaultBufferSize = 10485760

我應該去哪裏尋找上以找到緩慢執行的根本原因?

謝謝!

回答

1

ASYNC_NETWORK_IO是不消耗從SQL足夠

部署了包你是從查詢數據在同一臺服務器的快速來臨行的客戶端代碼引起的? 因爲處理這些行需要SQL服務器可能使用的內存。

在PC上本地運行會分離出這個負載。

「系統進程,大約190,000,000 B /秒」也可能因爲內存不足而導致磁盤和內存抖動,導致內存分頁過多。

就我個人而言,我總是會使用一個單獨的專用ETL(SSIS)服務器。

但是,我會檢查您的SQL Server最大內存並減少它以允許運行SSIS包。

+0

這是在專用的ETL服務器上。對不起,我沒有澄清這一點。 此軟件包的源是鏡像數據庫,其目標是分段數據庫。全部在同一臺服務器上。 爲什麼REDUCING max memory有助於解決這個問題? (服務器有16GB內存,其中約90%正在使用(這是一個開發服務器)) – Ethan1701

+0

@ Ethan1701我在同一臺服務器上假定了SSIS和SQL Engine – gbn