1

我有一份 Cognos 报告,其中有级联提示。层次结构在附加的图像中定义。

第一个父级(部门)在 3-5 秒内填充两个级联子级。但是当我选择任何策略(将填充下面的两个孩子)时,大约需要 2 分钟。

事实:

  • 两分钟后的结果集是正常的(~20行)
  • 所有提示后面的查询都很简单Select DISTINCT Col_Name
  • 我已经在所有提示列上创建了索引。
  • 尝试将本地缓存和执行方法打开为并发。
  • 我正在使用 Cognos Report Studio 10.1

任何帮助将非常感激。谢谢,

努哈

在此处输入图像描述

4

2 回答 2

0

一次性维度表有另一种选择。在框架中为您的 AL-No 提示创建一个查询主题。在查询本身中,构建一个获得不同 AL-No 的查询(您说这很快,可能是因为 AL-No 上有一个索引)。将其包装在对“#prompt('pPolicy')#' 进行过滤的选择中(假设您的策略提示键为 ?pPolicy?)

这将在将策略发送到数据库之前强制将策略放入 sql,但包装不同的 AL-No 将允许您使用 AL-No 索引。

select AL_NO from 
(
    select AL_NO, Policy_NO
    from CLAIMS
    group by AL_NO, Policy_NO
)
where Policy_NO = #prompt('pPolicyNo')#
于 2014-01-31T16:19:19.597 回答
0

您的问题是表格扫描过多。通常,人们会从基于维度的表而不是事实表构建提示页面,尽管我承认这对于级联提示并不总是可行的。理想的解决方案是使用这些不同的值创建一个一次性维度表,然后严格按照提示进行建模。

注意索引每个字段,因为由于值的选择性,不会使用索引。字段的复合索引可能会起作用。与您对 DDL 进行更改的任何时候一样 - 打开 SQL 分析器并查看 SQL Cognos 生成的内容,然后在更改之前/之后运行解释计划。

于 2014-01-30T12:20:15.623 回答