SSIS 中的性能分析
Performance Analysis in SSIS
在 SSIS 包中,我有一个数据流从 XML 源获取内容并通过 OLEDB 目标将数据加载到 SQLServer Table。
来源:XML来源;
目的地:OLEDB 目的地。(Sqlserver 数据库)。
- 在 Sqlserver 数据库中,目标 table (table1) 有 150 列,所有这些列都是 nvarchar(max) 类型。
- 在 SSIS 包 (p1.DTSX) 中,所有 XML 列的类型都是 DT_NTEXT。
- 在 SSIS 包 (p2.DTSX) 中,所有 XML 列的类型都是 DT_WSTR,长度设置为 3000。
使用此设置,当我执行输入 XML 记录计数为 2000 的作业时,p1.DTSX 在 30 秒执行,而 p2.DTSX 在 45 秒执行。
但是使用相同的设置,当我为输入 XML 记录计数 6000 执行作业时,p1.DTSX 在 1 分 20 秒时执行,而 p2.DTSX 执行速度更快比 p1(即 50 秒)。
当记录数增加时,请解释一下这个争议
SSIS 处理默认缓冲区中的数据(转到数据流任务的属性,我们可以设置默认缓冲区最大值 Rows/Size)。
在 p1.DTSX 文件中,当使用所有列为 DT_NTEXT(MAX) 的较大输入文件执行时,内存缓冲区填满并使用临时日志文件 (BLOBTEMPStorage) 处理数据路径,因此导致缓慢。
在 p2.DTSX 中,它没有引起任何问题,因为它处理了默认缓冲区中的所有内容,因为我们将列大小限制为 3000。
在 SSIS 包中,我有一个数据流从 XML 源获取内容并通过 OLEDB 目标将数据加载到 SQLServer Table。
来源:XML来源; 目的地:OLEDB 目的地。(Sqlserver 数据库)。
- 在 Sqlserver 数据库中,目标 table (table1) 有 150 列,所有这些列都是 nvarchar(max) 类型。
- 在 SSIS 包 (p1.DTSX) 中,所有 XML 列的类型都是 DT_NTEXT。
- 在 SSIS 包 (p2.DTSX) 中,所有 XML 列的类型都是 DT_WSTR,长度设置为 3000。
使用此设置,当我执行输入 XML 记录计数为 2000 的作业时,p1.DTSX 在 30 秒执行,而 p2.DTSX 在 45 秒执行。
但是使用相同的设置,当我为输入 XML 记录计数 6000 执行作业时,p1.DTSX 在 1 分 20 秒时执行,而 p2.DTSX 执行速度更快比 p1(即 50 秒)。
当记录数增加时,请解释一下这个争议
SSIS 处理默认缓冲区中的数据(转到数据流任务的属性,我们可以设置默认缓冲区最大值 Rows/Size)。
在 p1.DTSX 文件中,当使用所有列为 DT_NTEXT(MAX) 的较大输入文件执行时,内存缓冲区填满并使用临时日志文件 (BLOBTEMPStorage) 处理数据路径,因此导致缓慢。
在 p2.DTSX 中,它没有引起任何问题,因为它处理了默认缓冲区中的所有内容,因为我们将列大小限制为 3000。