在COGNOS Report Studio中有什么方法可以让我的查询在任何其他查询之前先运行?
用例:我有一份 COGNOS 报告,它比较 7-8 个存储过程 (sps) 的结果以找出数据差异。为此,我必须将 sps A 的结果与 sp B 的结果、B 与 C 的结果、A 与 D 的结果等连接起来。由于 COGNOS 没有结果缓存(本地缓存没有用)并且执行存储过程的速度很慢,因此我实现了一种伪缓存技术。在报告生成开始时,我将 3-4 个耗时的 sps 的结果存储到表中。在我想要比较数据的 COGNOS 查询中,我只需SELECT *
在表格上执行一个操作。问题是如何确保这个缓存生成查询首先运行,这样我就不会遇到另一个查询在数据填充之前执行 SELECT * 的情况。
不优雅的解决方案:有一个虚拟提示,在实际提示之后自动提交。并将缓存生成查询作为虚拟/不可见提示的源查询。因此,在用户在提示中选择值后,会出现另一个提示,该提示会自动提交,因此缓存生成查询在任何其他查询之前运行。
附言
使用 cognos 的原因是,有问题的 sps 实际上是其他 COGNOS 报告的来源,因此通过比较 sps,我实际上是在比较不同的报告,而企业只想查看 PDF 格式的差异报告。
使用上面提到的伪缓存技术,我将报告的运行时间从 50 分钟减少到了 30 分钟。此解决方案的问题在于,当使用“通过邮件发送报告”选项运行报告时,有时它会超时,并且没有收到任何邮件。
请让我知道是否有任何其他方法可以在其他查询之前先运行 COGNOS 查询,如果可能,请提出一些提高性能的方法。
平台SQL 服务器和 COGNOS 报表工作室