【发布时间】:2013-08-30 18:14:02
【问题描述】:
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 报表工作室
【问题讨论】:
-
没有阅读完整的问题,但是你到底为什么要在 cognos 中这样做呢?这是您信任的数据库管理员的工作。
标签: sql-server performance cognos