社区
图表区
帖子详情
reportview 加载报表
ff_1211
2011-06-21 11:30:03
我的报表是rdlc格式,用reportview加载 ,很慢,有哪些原因。怎么提升这速度??
数据库记录6万条,查询所有。 直接在sqlserver中耗时很短 2秒 ,可在网页中用reportview加载,达到1分钟以上
求助各位!
...全文
278
11
打赏
收藏
reportview 加载报表
我的报表是rdlc格式,用reportview加载 ,很慢,有哪些原因。怎么提升这速度?? 数据库记录6万条,查询所有。 直接在sqlserver中耗时很短 2秒 ,可在网页中用reportview加载,达到1分钟以上 求助各位!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
阿泰
2011-06-22
打赏
举报
回复
1:从理论上讲,手工分页会比自动分页慢些。
所以我建议你这样试试:再优化这个SQL语句,尽量到毫秒级。另外就是尽量减少RDLC报表上面的再处理
比如根据条件加底色加粗等等,减少自定义函数等各种自定义的环节,不用手工分页,使用自动分页。
再看看。
另外,他说的是50W条返回结果还是50W数据表里的结果呢,这个差别很大。
2:我们项目用的是水晶报表,所以对RDLC报表的话,我大数据量上的经验并不丰富。
水晶报表在处理清单类报表上有比较好的优势,但是有个很大的劣势就是导出性能差
基表数据是亿级(还没上10亿)。
但是如果超过50W我们基本上不允许显示。这样的数据页面展现、导出基本上没有任何意义
因为你不可能去从这么浩瀚的数据里去直接发现什么。
只有打印、或者是导出到Excel(或导入其他业务接口)里做二次分析。
前者的打印因为是要耗费大量的物理资源(长时间占用打印机以及耗费打印资源)后者要占用大量的服务器资源
所以我们一般会把这个作为一个单独的业务需求来处理的,也就是他们会提一个数据接口申请。我们会返回一个数据库表的导出文件给他。
50W在呈现上大概在20秒内,但是在页面上导出的话大概要30分钟(水晶报表的劣势)。
如果客户需要大数据范围的数据,我们会用SQL直接在数据库上出一个给他。
现在我们在架构一个新的平台,来将这个手工动作自动化。
但是,最终如果数据达到10w级(根据用户的权限级别设定)
我们一般是在后台调度,调度完后给他一个通知(短信或邮件),然后他再上来后就可以下载生成的数据接口文件,而不是在报表上直接展示。
我们主要做的是业务系统,跟一般的WEB不大一样,所以可能参考性比较不强。呵呵。
我建议你先按1试试。。
ff_1211
2011-06-22
打赏
举报
回复
[Quote=引用 5 楼 babyt 的回复:]
不管界面上怎么处理,只要是取了大的数据全集,那么效率肯定会慢的。
SQL Server的2s只是纯取数据,RDLC拿到数据后,还要进行页面渲染,分页等等系列操作。
所以慢是正常的。
思路是这样的:
因为这么大的数据量一般是清单显示,所以界面相对单一。
这个首先对数据进行一次Count,返回到程序里,然后根据这个总数分页,把页码作为参数传递给报表
(第几页,共几页都可以算出来)
……
[/Quote]
阿泰 你好
我有几点疑问:
1.昨天也是一个做报表的朋友告诉我,他50W的数据,用reportview显示,耗时才不过几秒钟;并且用的是reportview自带的分页,并没有手动分页,没有修改工具栏;跟他的比起来我的数据量几乎是微乎其微,但是速度是慢的惊人,这如何解释呢?
2.你们做报表的数据量应该至少也是万条为单位吧;你们测试的速度大概在一个什么范围内,如果耗时比较长又是如何处理这个问题呢?是不是就像你刚才给我的建议这样处理的?
3 如果你们采取的是手动分页,手动修改工具栏这个解决方案,那么可不可以给个小例子给我参考参考呢?
阿泰
2011-06-22
打赏
举报
回复
不管界面上怎么处理,只要是取了大的数据全集,那么效率肯定会慢的。
SQL Server的2s只是纯取数据,RDLC拿到数据后,还要进行页面渲染,分页等等系列操作。
所以慢是正常的。
思路是这样的:
因为这么大的数据量一般是清单显示,所以界面相对单一。
这个首先对数据进行一次Count,返回到程序里,然后根据这个总数分页,把页码作为参数传递给报表
(第几页,共几页都可以算出来)
然后用用分页存储过程,每次返回一页的数据给RDLC。这样组合成一个页。
但是要注意的是,这样的话,工具条就要自己改造了。
比如翻页动作,导出、打印动作。这样的话,工作量就巨大了。
阿泰
2011-06-22
打赏
举报
回复
囧~~
非常感谢ff_1211能分享问题的原因和解决方法 :)
ff_1211
2011-06-22
打赏
举报
回复
阿泰你好:
我现在终于知道我的报表为什么如此慢了,
最重要的原因在于:我在报表结果呈现之前,将报表导成了excel文件于服务器上。此步骤耗时比较多。
这步骤是为了实现我程序中,另一功能,写了很久了,都忘记做了这一操作。。哎。
之前因数据量小,没有很明显的看出效率问题
最后,非常感谢你的帮助
阿泰
2011-06-22
打赏
举报
回复
[Quote=引用 8 楼 ff_1211 的回复:]
恩,首先谢谢你的回答!
我按照你给的建议1先测试测试。
不过你在第一回答的时候,提供的思路就是指的手动分页吧!怎么从理论上又说这样速度会比自动分页慢呢?
或者说是我理解错误,你指的并不是手动分页,而是其他说法?
[/Quote]
自动分页一般是报表按照设定的页面(或纸张)大小进行的,
而手工分页可能有很多情况,你可能简单指定一个每页行数,也可能有其他条件的依赖等等。
我的总体意思是,在数据量很大的时候,尽可能少地在报表上做一些设定动作。
ff_1211
2011-06-22
打赏
举报
回复
恩,首先谢谢你的回答!
我按照你给的建议1先测试测试。
不过你在第一回答的时候,提供的思路就是指的手动分页吧!怎么从理论上又说这样速度会比自动分页慢呢?
或者说是我理解错误,你指的并不是手动分页,而是其他说法?
chenhaoying
2011-06-21
打赏
举报
回复
网页加载的内容达到10M的话速度就变得很慢很慢了,6w条数据建议分页显示,不要一下子显示。
ff_1211
2011-06-21
打赏
举报
回复
[Quote=引用 3 楼 wxr0323 的回复:]
设置组属性
1. 工具箱中拖一个列表过来,设置 列表-->行组-->组属性
常规-->组表达式=Int((RowNumber(Nothing)-1)/10)
分页符-->勾选在组的结尾
2. 工具箱中拖一个表,放在列表中,然后可以对表进行随意设计,表中分组就会自动按照10条一页进行分页,标题也会在新页中被重复打印了
3.公式:=Sum(Fields!数量.Value) 这样的格式……
[/Quote]
这样处理后,页面同样是显示很慢。。这种处理应该也是全部读取数据,然后再对结果分页,显示几条记录吧
子夜__
2011-06-21
打赏
举报
回复
设置组属性
1. 工具箱中拖一个列表过来,设置 列表-->行组-->组属性
常规-->组表达式=Int((RowNumber(Nothing)-1)/10)
分页符-->勾选在组的结尾
2. 工具箱中拖一个表,放在列表中,然后可以对表进行随意设计,表中分组就会自动按照10条一页进行分页,标题也会在新页中被重复打印了
3.公式:=Sum(Fields!数量.Value) 这样的格式在分组中,就是求组小计,
在不是分组的情况下,就是合计。
4.而自动生成的语句是用的:=Sum(Fields!数量.Value, "DataSet_Name")
这条是自动生成的无论有没有分组的情况下,都是所有记录的合计
参考
ff_1211
2011-06-21
打赏
举报
回复
[Quote=引用 1 楼 chenhaoying 的回复:]
网页加载的内容达到10M的话速度就变得很慢很慢了,6w条数据建议分页显示,不要一下子显示。
[/Quote]
自定义分页显示,是不是就和平常自定义gridview分页一样?
用
Report
View
控件展示Rdl服务器
报表
可行性研究
1 引言由于客户端
报表
(Rdlc)在设计时可以不绑定具体的数据源(可以在
加载
的时候再动态绑定),因此无法从Rdlc文件中获取到具体的数据源信息(即具体的SQL脚本)。而服务器
报表
在设计阶段必须绑定数据源,所以,考虑采取这样的方式来实现RTS
报表
体系:用服务器
报表
来做设计,用
Report
View
控件来做展示,即用
Report
View
控件来展示Rdl
报表
。2 验证过程n 用SQL Ser
Report
View
动态
加载
带参数的RDCL文件及子
报表
本文来自Torres.Wu发表在博客园的博客,转载请标明出处。 同上一篇差不多,这次咱们
加载
带有子
报表
的RDCl文件。首先还是创建一个form程序,在form2窗体中添加一个Repor
View
控件,load方法如下: private void Form2_Load(object sender, EventArgs e) { DataSet ds3...
Report
View
er动态
加载
报表
文件
webform中一个
Report
View
er控件如何动态显示多个rdlc文件,在网上搜索了一些资料都没有找到实现方法。于是自己就在页面中添加多个
Report
View
er控件来对应多个rdlc文件,然后根据需要显示和隐藏部分
Report
View
er控件。但是这样页面上控件太多代码看起来也有许多多余的地方,在微软Jasson Wang的帮助下找到了一种动态显示rdlc文件的方法。 /**/
报表
的使用步骤
report
view
利用MS
Report
ing Services与C#生成
报表
来源:谢启东的专栏 作者:谢启东 时间:2008-05-26点击:665次 C#也能用在
报表
中,少见吧,一起来看看! 关于编写
报表
,职场中的人相信都会有所感慨,一份整洁、优美的
报表
会为你在上司面前增色不少,甚至加薪 :) ——大家都喜欢加薪,对吧?在本文中,将向大家介绍怎样利用MS
Report
ing Service...
解决Visual Studio 2019工具箱安装
报表
插件
Report
View
后,不能使用的问题
5、在你创建的项目或工程根目录下找到 “\packages\Microsoft.
Report
ingServices.
Report
View
erControl.Winforms.140.340.80\lib\net40” 选择“Microsoft.
Report
View
er.WinForms.dll”。这正是问题所在,因为到目前为止这种安装的方式,安装的版本是不能和VS2019兼容的,它会自动安装最新的版本。1、打开vs2019,选择“工具” >>“ Nuget包管理器” >> “程序包管理器控制台”
图表区
4,816
社区成员
14,139
社区内容
发帖
与我相关
我的任务
图表区
.NET技术 图表区
复制链接
扫一扫
分享
社区描述
.NET技术 图表区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章