oracle report developer 10g一个简单的报表,代码如下:
select a.id,a.name,b.id.b.name
from table_a a,table_b b
where a.id = b.id
and a.org_id = :org_id
这个时候报表运行正常。
------------------------------------------------------
后来我又添加了一个表c,代码大致如下
select a.id,a.name,b.id.b.name
from table_a a,table_b b,table_c c
where a.id = b.id
and a.attribute1 = c.value
and a.org_id = :org_id
这个时候一运行报表就无法响应,但是我连报表布局都没改过,仅仅是在代码里加入了c这个表,并用a表的attribute1与c表的value关联
c表并不大,一开始我以为和c表有关,特地新建了一个更小的表,但是还是会卡死。
后来我想可能是a.attribute1 = c.value这个关联有什么问题,a.attribute1是弹性域字段,VARCHAR2(150)。可能文本的关联又没有索引会比较慢一些,但是我在plsql developer上运行该程序的时候很正常,而且时间效率上也没有差多少,为什么在report里就能导致卡死呢?因为卡死,也没有错误提示,希望有经验的前辈指点一下可能的原因。多谢。Oracle报表

解决方案 »

  1.   

    感谢帮忙。新建一个报表也会卡死的。我尝试建立一个新查询Q_2,代码是
    select c.value,c.value_desc from table_c c where c.value_set_id  = 100。
    然后把原来的查询Q_1和新查询Q_2连接起来,这样就不卡了,但是这样在布局显示的时候会有限制,我需要格外多做一些占位符什么的。
    而且更重要的是我十分想知道到底为什么会出现这种卡死的情况。
      

  2.   

    可能还是因为a.attribute1 = c.value这个关联吧,虽然plsql developer运行起来比较快,但是report这块运行起来耗费资源太大了,所以就卡死了。感觉也差不多就这样了