首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >水晶8& 11 -为什么在报表中使用11个查询blobs与oracle db视图分开?

水晶8& 11 -为什么在报表中使用11个查询blobs与oracle db视图分开?
EN

Stack Overflow用户
提问于 2015-03-23 19:50:37
回答 1查看 216关注 0票数 0

背景-有一个应用程序构建使用水晶11。rpt文件本身非常简单:基于一个甲骨文数据库视图,其中包括两个blob列(一个持有一张照片,另一个,一个签名的图像)。在此之前,我们还有一个旧版本的这个应用程序,使用的是水晶8,据我所知,*.rpt文件是在什么时候转换的,没有做什么特别的事情。它仍然使用同一个oracle数据库视图。

我使用v$sql的DBA注意到,当我们运行报表时,它现在对数据库视图进行了三次查询。在此之前,它只发送了一个查询。这两个额外的查询是对第一个视图执行的,但是没有放置位置,并且只查找那些单独的blob列。

这不是我们使用水晶8时的表现,他证实了这一点。

水晶8只查询视图一次,并获取它所需的所有列。

水晶11也发送同样的查询,它本身也包括blob列。

水晶11不需要发送这两个额外的查询。

没有在水晶11 rpt文件中添加公式。该rpt文件的第8和第11版本都只有记录级别选择公式。我在设计布局中搜索了每一个blob对象,以确认它们是从相同的视图中获取的,等等。

进一步地,我做了以下工作:*我去掉了设计布局中的所有数据库对象。*我向后添加了两个文本列(没有使用blob列)* DBA确认只发生了对视图的一个查询。

  • 然后我又把照片加回去了。
  • DBA说有两个查询正在显示。前面提到的那个,还有一个是用来拍照片的。
  • 然后,我添加了相同的图片块,这样屏幕上就会有一张重复的照片。
  • DBA说没有变化。仍然只显示两个查询。
  • 然后,我为签名图像添加了另一个blob。
  • DBA说,现在他看到了这三个问题。

怎么回事!?

为什么水晶8不这样做?这是一个已知的错误吗?一个人如何绕过它而不必重新设计整个报告呢?

其他信息:我验证了rpt文件只引用一个数据库视图。

我证实只有一个公式。这只存在于记录选择级别。它不包含对照片斑点的引用。

然而,我确实发现了一件有趣的事情,那就是公式编辑器中的“report”列表中,我看到了报表设计器/公式中使用的所有字段,除了照片和签名之外,它们都没有列出。这让我相信水晶是分开处理的。

没有使用任何子报告。

EN

回答 1

Stack Overflow用户

发布于 2015-03-25 18:22:28

我还没弄明白。但是,我正在探索如何从数据库专家创建一个SQL命令,该命令专门查询blob列,并有一个正确的where子句。这将成为我使用的blob字段,而不是视图本身。在使用where子句之前,DBA确实看到了使用where子句的附加查询,但在第二个查询没有显示where子句之前,DBA仍然遇到了一些错误。报告也运行得更快。只是需要弄清楚如何让它的其余部分发挥作用(另一个故事的另一个时间)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29219101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档