【问题标题】:SSIS performanceSSIS 性能
【发布时间】:2014-04-01 12:35:30
【问题描述】:

我正在使用只有 4GB RAM 的 intel core-i3 64 位机器。操作系统是 Windows 7 和 SQL Server 2012,已安装评估版。

我正在尝试在其中进行一些 SSIS 开发。我需要加载一个包含 50 万条记录的平面文件(156 列/总共大约 3500 行长度)。 SQL 引擎和 SSIS 引擎在同一台机器上运行。 由于我使用的是小型 PC,我不希望我的机器具有高性能。请参阅下面的打印屏幕。

一旦我的包开始运行,内存使用量很快就会达到最大值。

查看进程选项卡


CPU占用率只有3%,内存可能是96%,

1.即使在关闭后,SSDT 和 SQL 服务器管理工​​作室, 内存仍然保持在 95%,直到我重新启动 MSSQL 服务。为什么是 它表现得怎么样?

2。如何知道 I/O 效率?

提前致谢。

【问题讨论】:

  • 1.因为默认情况下 SQL Server 使用内存并且不会放过它。关闭 SSMS 无关紧要。如果您想限制它,请更改最大服务器内存(仅当它实际上影响性能时) 2. 我绝不是性能专家,但请查看 perfmon 和 DMV 视图。您会很快意识到“I/O 效率”是一个非常简单的问题,但答案却非常复杂。

标签: sql-server ssis sql-server-data-tools sqlperformance


【解决方案1】:

【讨论】:

  • 正如我之前所说的,我正在将平面文件加载到 SQL 目标。在 156 列中,所有列都作为字符串加载到阶段表中。我们正在这样做,因为这将作为参考数据保存。看起来 Fast Parse 仅适用于数据类型 DT_I1、DT_I2、DT_I4、DT_I8、DT_UI1、DT_UI2、DT_UI4、DT_UI8、DT_DBTIMESTAMP、DT_DBTIMESTAMP2、DT_DBTIMESTAMPOFFSET、DT_DATE、DT_DBDATE、DT_DBTIME、DT_DBTIME2 或 DT_FILETIME 的列。 >
  • 由于快速解析不适用于您的字符串数据类型,请尝试将您的数据访问模式设置为“快速加载”选项之一。这可以在数据流下的 OLE DB 目标编辑器中找到。
  • 我改变了,数据库恢复模式从 FULL --> 简单。加载速度提高 10-15%..
【解决方案2】:

根据您的问题,您应该考虑减小缓冲区大小或减小批处理大小。例如,减小 DefaultBufferSize 和 DefaultBufferMaxRows。

您可以使用具有适当批量大小的 ODBC,而不是在 OLE DB 目标或 SQL 目标中使用快速加载。

由于你的机器的限制,如果有并行,请尝试正确使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多