Crystal Reports  

将记录选定下推到数据库服务器

提高报表处理速度最为重要的做法是限制从数据库返回的数据量。实现这种做法的主要工具是记录选定公式。

Crystal Reports 提供的用于 SQL 数据源的驱动程序允许将记录选定“下推到”数据库服务器。在基于 SQL 数据源的报表中指定记录选定公式时,Crystal Reports 分析该公式,从该公式生成 SQL 查询,并将 SQL 查询传递到数据库服务器。然后分两个阶段执行记录选定:

因为数据库服务器通常比工作站快,所以在第一阶段指定可以由服务器处理的记录选定公式比较有利。这样做将会最大限度地降低第二阶段在本地计算机上执行的记录选定。下列类型的记录选定可以下推到服务器:

下推记录选定示例

本示例展示编写可以下推到数据库服务器的记录选定公式的好处。

在 Xtreme 示例数据库的“订单”表中共有 2,192 条记录,其中 181 条的订单日期早于 2001 年。假定您只需要报告这些记录。一方面,可以使用下面的记录选定公式:

Year ({Orders.Order Date}) < 2001

所生成的 SQL 查询将 2,192 条记录全部发送到 Crystal Reports,然后记录选定公式将此记录数减少到 181 条。若要查看这一过程,请单击“数据库”菜单上的“显示 SQL 查询”,您会注意到 SQL 查询中没有 WHERE 子句。这是因为 Crystal Reports 无法下推 WHERE 子句中的 Year ( ) 函数。

另一方面,下面的记录选定公式生成相同的报表:

{Orders.Order Date} < #Jan 1, 2001#

上面的第二条公式可在数据库服务器上执行,因此可以下推。所生成的 SQL 查询仅将 181 条记录发送到 Crystal Reports。因此,在由 Crystal Reports 对记录选定公式求值时,无须进一步消除记录。单击“数据库”菜单上的“显示 SQL 查询”,您会注意到所生成的 SQL 查询中有 WHERE 子句。

如本示例所示,在改进记录选定公式后,报表的处理速度提高了。在本例中,两个公式生成相同的报表,但第二个公式利用了数据库服务器在处理其数据时可以使用的功能和优化。

记录选定性能提示

在设置记录选定请求时,请考虑下列与性能相关的项目:

常规

SQL 数据库

另请参见

基本记录选定 | SQL 表达式