【发布时间】:2009-05-13 21:26:55
【问题描述】:
我继承了一个 SSIS 包,它将 500K 行(大约 30 列)加载到临时表中。
它现在已经烹饪了大约 120 分钟,但还没有完成 --- 这表明它的运行速度低于每秒 70 行。我知道每个人的环境都不同,但我认为这与“典型”相差几个数量级。
奇怪的是,暂存表在 INT(身份)列上有一个 PK 约束——现在我认为它可能会妨碍加载性能。暂存表上没有其他约束、索引或触发器。
有什么建议吗?
---- 附加信息 ------
源是一个制表符分隔的文件,它连接到两个单独的数据流组件,这些组件将一些静态数据(运行日期和批次 ID)添加到流中,然后连接到 OLE DB 目标适配器
访问模式是使用 FastLoad 的 OpenRowset
FastLoadOptions 是 TABLOCK,CHECK_CONSTRAINTS
最大插入提交大小:0
【问题讨论】:
-
你能举个例子说明数据是什么样子和表结构吗?
-
即使有 PK 约束,它的性能也应该比这好很多。你能看到 SSMS 中的任何锁吗?您是否尝试过使用 nolock/read uncommitted 查询暂存表以查看是否添加了任何内容?
标签: sql-server ssis