小编Cha*_*Jha的帖子

SSIS 包全表加载缓慢

我们有一个 SSIS 包,显然被开发团队称为“慢”。由于他们没有使用 SSIS ETL 的人,因此作为 DBA,我尝试深入研究。以下是我找到的信息:SQL Server 已从 2014 版本升级到 2017,因此它具有两个版本的 SSIS。

  1. 他们将大小为 200 GB 的 SQL Server 表加载到 SSIS 中,然后使用命令行压缩功能将数据压缩到平面文件中。
  2. 数据流任务很简单select * from view——视图只是包含没有其他花哨连接的表。
  3. 在进行故障排除时,我发现在 SQL Server 上几乎没有任何负载,可能是因为 select 命令在单线程中运行而不使用 SQL Server 内核。
  4. 当我运行相同的 select * 命令(仅 5 秒,因为它是 200 GB 表)时,即使我的命令也是单线程的。
  5. 该包具有 SQL 作业显示的配置文件(这是包的运行方式)以及一些连接设置。
  6. 在 BIDS 中打开包显示 defaultBufferMaxRows 仅为 10000(可能是默认值)(因为配置文件或任何变量没有客户值,我猜这也是包正在使用的)。

SQL 和 SSIS 都在同一台服务器上。SQL 已分配最大内存,为 SSIS 和 OS 留下大约 100 GB。

请分享有关如何强制 SQL Server 使用多个线程运行此 select 命令以便整个表更快地进入 SSIS 缓冲池的任何想法。

编辑:我知道bcp可以比任何进程更快地读取数据并将其保存到平面文件,但此时对 SSIS 包的更改必须保持最少,并探索可以合并到 …

sql-server parallel-processing performance ssis etl

5
推荐指数
1
解决办法
1607
查看次数

标签 统计

etl ×1

parallel-processing ×1

performance ×1

sql-server ×1

ssis ×1