首页 文章

Crystal Reports性能选项

提问于
浏览
0

我们基于SQL Server创建了几个水晶报告 - 通常是2005年或2008年 . 大致有两种报告

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

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

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

3 回答

  • 1

    由'Database Expert'生成的查询与添加到Command的相同SQL之间的性能没有差异 . 需要注意的是:确保可以解析记录选择公式并将其发送到数据库(应用的过滤器 WhileReadingRecords 肯定不如纯SQL的效率高) .

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

    在v 2008之前

    • ,Command对象不支持多值参数

    • 更容易管理(有些主观)

    偏好命令的原因:

    • 您可以添加提示

    • 你对SQL有更细粒度的控制(例如内联视图,CTE,更复杂的JOIN,子选择)

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

    最后,性能无可替代 . 尝试查询两种方法并测量结果 .

  • 0

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

  • 0

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

相关问题