我有一份 Cognos 报告,其中有级联提示。层次结构在附加的图像中定义。
第一个父级(部门)在 3-5 秒内填充两个级联子级。但是当我选择任何策略(将填充下面的两个孩子)时,大约需要 2 分钟。
事实:
- 两分钟后的结果集是正常的(~20行)
- 所有提示后面的查询都很简单Select DISTINCT Col_Name
- 我已经在所有提示列上创建了索引。
- 尝试将本地缓存和执行方法打开为并发。
- 我正在使用 Cognos Report Studio 10.1
任何帮助将非常感激。谢谢,
努哈
我有一份 Cognos 报告,其中有级联提示。层次结构在附加的图像中定义。
第一个父级(部门)在 3-5 秒内填充两个级联子级。但是当我选择任何策略(将填充下面的两个孩子)时,大约需要 2 分钟。
事实:
任何帮助将非常感激。谢谢,
努哈
一次性维度表有另一种选择。在框架中为您的 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')#
您的问题是表格扫描过多。通常,人们会从基于维度的表而不是事实表构建提示页面,尽管我承认这对于级联提示并不总是可行的。理想的解决方案是使用这些不同的值创建一个一次性维度表,然后严格按照提示进行建模。
注意索引每个字段,因为由于值的选择性,不会使用索引。字段的复合索引可能会起作用。与您对 DDL 进行更改的任何时候一样 - 打开 SQL 分析器并查看 SQL Cognos 生成的内容,然后在更改之前/之后运行解释计划。