Crystal Reports性能选项

时间:2012-11-03 11:15:28

标签: crystal-reports

我们根据SQL Server创建了几个水晶报告 - 通常是2005年或2008年。大致有2种报告

a)表格报告 - 显示表格中的一些数据(例如,发票清单) b)文档布局 - 以特定格式显示数据 - 通常来自一个或两个主表 - 以及几个辅助表(例如,发票)

我们有时直接在水晶中使用表格。或者在SQL中创建一个过程,然后使用该过程。一张发票通常可以指10-12个表。其中大多数使用左外连接链接到主发票表。

什么选项更好 - 使用水晶表格(让水晶创建并运行sql查询) - 或创建查询 - 而不是在水晶中使用该查询。哪一个会带来更好的表现?

3 个答案:

答案 0 :(得分:1)

“数据库专家”生成的查询与添加到命令的同一SQL之间的性能没有差异。需要注意的一点是:确保可以解析记录选择公式并将其发送到数据库(应用的过滤器WhileReadingRecords肯定不如纯SQL的效率高。)

更喜欢'数据库专家'的原因:

  • 在v 2008之前,Command对象不支持多值参数
  • 更容易管理(有些主观)

更喜欢命令的理由:

  • 您可以添加提示
  • 你对SQL有更精细的控制(例如内联视图,CTE,更复杂的JOIN,子选择)

就个人而言,我尽量避免使用存储过程,因为它们提供的性能优势很小,但需要在开发和维护方面进行更多的意义投资。

最终,性能无可替代。尝试两种方式查询并测量结果。

答案 1 :(得分:0)

自己编码几乎总是运行得更快 - 毕竟,你知道你的数据是什么样的,而Crystal则不然。此外,您可以在手动查询(例如,窗口函数)中执行一些Crystal无法做到的事情。

答案 2 :(得分:0)

Crystal倾向于在幕后做一些疯狂的事情。您可以在“数据库”菜单选项下查看“显示SQL查询”以查看其创建的内容。如果发现在SQL中编写查询更容易,因为我可以更容易地自己优化它。我也更喜欢在SQL中执行任何计算/公式字段,只使用Crystal作为显示界面。如果你把逻辑放在水晶中,请记住它正在为每个返回的记录运行该逻辑...所以如果有条件从公式中排除记录,那么首先要限制计算所用的时间。