在web页面中水晶报表显示速度过慢的原因
最近在工作中,利用水晶报表来显示图表,出一个问题。那就是有些水晶报表,由页面加载,并显示出来的速度很快,有些则很慢,
不知道是什么原因。
Web页面的显示,一般的显示速度在7秒左右,是可以忍受的,如果大大超过7秒,则人的失去一定的耐心。所以这个报表页面显示,需要近20秒,太慢了,必须进行优化。
请先看下面一组数据。
1.第一张报表中有一张主报表与三张子报表。装载时间如下:
开始时间 datetime=2006-3-1 13:17:45
水晶报表格式化设置时间,开始, datetime:=2006-3-1 13:17:45
水晶报表格式化设置时间,结束, datetime:=2006-3-1 13:17:45
报表查看器,装载水晶报表文件,开始, datetime:=2006-3-1 13:17:45
报表查看器,装载水晶报表文件,结束, datetime:=2006-3-1 13:18:02
设置水晶报表的数据库连接参数,datetime:=2006-3-1 13:18:03
给水晶报表传递参数,开始,datetime:=2006-3-1 13:18:03
给水晶报表传递参数,结束, datetime:=2006-3-1 13:18:03
结束时间 datetime:=2006-3-1 13:18:03
2.第二张报表中只有一张主报表。装载时间如下:
开始时间 datetime:=2006-3-1 13:20:44
水晶报表格式化设置时间,开始, datetime:=2006-3-1 13:20:44
水晶报表格式化设置时间,结束, datetime:=2006-3-1 13:20:44
报表查看器,装载水晶报表文件,开始, datetime:=2006-3-1 13:20:44
报表查看器,装载水晶报表文件,结束, datetime:=2006-3-1 13:20:44
设置水晶报表的数据库连接参数, datetime:=2006-3-1 13:20:44
给水晶报表传递参数,开始,datetime:=2006-3-1 13:20:44
给水晶报表传递参数,结束, datetime:=2006-3-1 13:20:44
结束时间 datetime:=2006-3-1 13:20:44
从中发现第一张水晶报表的装载时间,过长。
那么问题出在什么地方呢?查看代码:
在报表查看器,装载水晶报表文件,开始与结束之间就两行代码:
try
{
//报表文件
string RtDir=Config.SystemFramework.ReportConfig.FeederReportFileName;
//装载报表
this.RptDoc.Load(RptDir);
}
catch
{
return false;
}
由于报表最终还是显示了,所以报表装载不会出错。那么只有数据库与报表文件有问题。
首先,对于数据中的报表存储过程进行优化,最后在数据库的查询分析器中同时执行,与报表相关的
四个存储过程,执行时间很快,没什么问题。
3
再一次的在页面中显示其报表,结果如下:
开始时间 datetime:=2006-3-1 15:41:13
水晶报表格式化设置时间,开始, datetime:=2006-3-1 15:41:13
水晶报表格式化设置时间,结束, datetime:=2006-3-1 15:41:13
报表查看器,装载水晶报表文件,开始 datetime:=2006-3-1 15:41:13
报表查看器,装载水晶报表文件,结束,datetime:=2006-3-1 15:41:30
设置水晶报表的数据库连接参数 datetime:=2006-3-1 15:41:32
给水晶报表传递参数,开始 datetime:=2006-3-1 15:41:32
给水晶报表传递参数,结束, datetime:=2006-3-1 15:41:32
结束时间 datetime:=2006-3-1 15:41:32
问题看来还是没有解决。现在影响报表显示的地方只有一个了那就是报表本身。
用水晶报表打开报表,报表本身没有什么问题。预览,此时却弹出一个数据库连接对话框,
默认的server如下图,原来server出错了,由于报表开发后,服务器进行了变更。

把server改成现在使用的服务器,再打开报表页面,执行情况如下:
4
开始时间 datetime:=2006-3-1 16:34:39
水晶报表格式化设置时间,开始, datetime:=2006-3-1 16:34:39
水晶报表格式化设置时间,结束, datetime:=2006-3-1 16:34:39
报表查看器,装载水晶报表文件,开始 datetime:=2006-3-1 16:34:39
报表查看器,装载水晶报表文件,结束 datetime:=2006-3-1 16:34:39
设置水晶报表的数据库连接参数 datetime:=2006-3-1 16:34:40
给水晶报表传递参数,开始 datetime:=2006-3-1 16:34:40
给水晶报表传递参数,结束 datetime:=2006-3-1 16:34:40
结束时间 datetime:=2006-3-1 16:34:40
总结:所以在使用水晶报表开发报表时,如果碰到报表显示速度过慢,可以查看一个是否是数据库服务器变更了。


浙公网安备 33010602011771号