我有一个ETL和Cube解决方案,我在SQL代理作业中一个接一个地处理。
在ETL中,我运行1个包,然后逐个运行所有其他包。
整个处理需要10个小时。
ETL
:
除了打开解决方案和记录时间之外,我怎样才能找出哪个包在该父包中运行了多长时间?
cube
:
尺寸过程快速。我在这里测量什么才能找到哪个部分需要这么长时间?也许措施?如何跟踪特定措施的处理时间?
也许SQL Profiler
会有所帮助?如果是这样,是否有一篇很好的文章描述了我应该注意哪些指标?
答案 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中连接,右键单击每个度量值组并完成一个过程(这假定维度刚刚进行了新处理。)由于数据量的原因,这些度量更可能成为问题的原因。
一旦了解哪个度量较慢,就可以查看调优源查询,是否有任何复杂性,或者对度量值组进行分区并进行增量加载。可以定期进行全面处理。
米