SSIS查询在目录中的作业中运行非常缓慢。 wait_type:ASYNC_NETWORK_IO

时间:2017-07-24 13:19:11

标签: sql-server ssis data-warehouse

我有一个SSIS包作为项目的一部分。通过SSIS从我的机器运行时,处理15M记录大约需要15分钟。 一旦部署到服务器上的目录并运行一个作业,它现在已经持续了2个多小时。

这个特定的软件包正在服务器本身移动数据(在分段中),因此没有网络瓶颈。

以下是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为~300,000 B / Sec

使用BufferTempStoragePath将软件包配置为c:\ temp \ DefaultBufferMaxRows = 10,000 DefaultBufferSize = 10,485,760

为了找到执行缓慢的根本原因,我应该继续查看哪里?

谢谢!

1 个答案:

答案 0 :(得分:1)

ASYNC_NETWORK_IO是由客户端代码不足以快速消耗来自SQL的行引起的

您是否已将程序包部署到要查询数据的同一服务器上? 因为处理这些行需要SQL服务器可能正在使用的内存。

在PC上本地运行它会分离此负载。

"系统流程,大约190,000,000 B / Sec"因为内存不足,你可能会在很多内存分页中捣乱磁盘和内存。

就个人而言,我总是使用单独的专用ETL(SSIS)服务器。

但是,我会检查您的SQL Server最大内存并减少它以允许SSIS包运行。