而是从数据库中推送数据

时间:2016-10-13 06:27:52

标签: sql-server ssis etl data-warehouse

通过OPENQUERY或SSIS数据流将数据从我的OLTP数据库(它是ETL的一部分)加载到另一个SQL Server数据库(运行此SSIS包/ OPENQUERY语句的仓库),将其杀死。当我在性能监视器中检查时,我使用源数据库中的资源,而不是来自命运。是否可以反转此资源利用率(使用SQL Server 2016或SSIS)?

2 个答案:

答案 0 :(得分:2)

此处的问题出在您的目标写入操作中。如果您正在使用具有快速加载访问模式的OLE DB目标,请尝试将每个批处理的值设置为非零值,并将最大插入提交大小减少为在内存和CPU上很容易的值。在写入目标表之前,SSIS不必等待默认值2147483647,这会对日志文件产生很大影响,从而减慢进程。有关设置此值的详细信息,请参阅此Article。一切顺利

enter image description here

答案 1 :(得分:0)

您的导出查询如何?它只是一个简单的数据转储,还是有一些复杂的逻辑(例如,通过导出进行一些非规范化/聚合)?

如果它只是一个简单的导出,请检查您的SSIS包运行的服务器以及它使用的资源。在任何情况下,您都需要从源系统中读取数据,因此需要进行一些读取光盘操作。

通常,最好尽快从OLTP获取数据,然后在ETL /数据仓库服务器上的ETL过程的后续步骤中应用其他操作。为了减少对交易系统的影响。

希望它有所帮助。