找到ETL和Cube处理的瓶颈

时间:2017-07-21 18:41:37

标签: sql-server ssis ssas etl sql-server-profiler

我有一个ETL和Cube解决方案,我在SQL代理作业中一个接一个地处理。

在ETL中,我运行1个包,然后逐个运行所有其他包。

整个处理需要10个小时。

ETL: 除了打开解决方案和记录时间之外,我怎样才能找出哪个包在该父包中运行了多长时间?

cube: 尺寸过程快速。我在这里测量什么才能找到哪个部分需要这么长时间?也许措施?如何跟踪特定措施的处理时间?

也许SQL Profiler会有所帮助?如果是这样,是否有一篇很好的文章描述了我应该注意哪些指标?

1 个答案:

答案 0 :(得分:1)

要收集有关SSIS执行时间的统计信息,您可以启用日志记录:

  • 对于软件包部署模型,您必须打开每个软件包的日志记录,转到SSIS > logging。在对话框中选择“执行前”和“后执行”事件。使用sql logging提供,它将记录到名为dbo.sysssislog的系统表。您需要在执行ID上加入事件前和事件后的事件。

  • 对于项目部署模型,它可能已经开启。这可以在SSMS Integration Services > SSISDB中配置,右键单击并选择属性。执行完程序包后,您可以在标准报告中查看结果。右键单击主包,然后选择Reports > Standard Reports > All Executions

有关SSIS日志记录的更多详细信息:https://docs.microsoft.com/en-us/sql/integration-services/performance/integration-services-ssis-logging

对于SSAS,我总是手动测试。在SSMS中连接,右键单击每个度量值组并完成一个过程(这假定维度刚刚进行了新处理。)由于数据量的原因,这些度量更可能成为问题的原因。

一旦了解哪个度量较慢,就可以查看调优源查询,是否有任何复杂性,或者对度量值组进行分区并进行增量加载。可以定期进行全面处理。