当前位置:编程学习 > C#/ASP.NET >>

请教一下BS大数据量查询的问题


    现在做的一个ERP,里面有一个报表查询功能,即查询一个企业一段时间的收发存台账功能,数据量相当大,关联各个表查询出来一个月的数据大概要3-5分钟,企业要求能查一年的数据。。。
    项目是用BS做的,前台请求数据库,执行存储过程查询,2分钟没有返回结果查询就挂掉了,我试了下将IIS的超时时间改长一点,依然不行。想问下各位BS做这种大数据量查询有没有什么比较好的思路 数据库 报表 --------------------编程问答-------------------- 想当然编程的话,可能就会“查询大数据量”。

而程序设计师则是:“查询总记录数,然后仅仅当用户将滚动条拉到底部、或者明确翻页时才需要加载后边的(一页)数据”。 --------------------编程问答-------------------- 这其实不算什么“比较好的思路”,我没有看到一个软件一下子会显示10万条记录的!

可能你没有做过实际的产品,所以没有接触过真正的数据列表方面的编程。 --------------------编程问答--------------------
引用 2 楼 sp1234 的回复:
这其实不算什么“比较好的思路”,我没有看到一个软件一下子会显示10万条记录的!

可能你没有做过实际的产品,所以没有接触过真正的数据列表方面的编程。

嗯,是的。
列表默认显示15,20,50或者100条记录,每次翻页都会查询一次数据库,数据库的处理方式是查询的时候会传一个页面记录条数和pageindex,也就是说在数据库里做的分页处理,但是主要是查询的太慢,每次都要扫所有的记录相当的慢,查询出来结果已经好几分钟了,再把这些记录根据条件过滤出来15-100条传到前台,但这个时候前台已经超时了 --------------------编程问答-------------------- 补充一下,这种查询并不是直接查询实体表,是将N个表根据传入的某种过滤条件 各种join联合查询出来的结果。如果是直接查询实体表较好处理,速度也不会很慢。但是这样的查询,每次查询出来的结果都不一样,所以速度方面比较难处理一些。 --------------------编程问答-------------------- 数据库进行优化。

难以想象大数量怎么不让技术骨干出马?

你们的客户看到这种现象不心寒吗? --------------------编程问答-------------------- 数据库优化,比如在表结构设计方面,比如可以建立一个日报表,月报表,年报表,
这样将某天的台账记录到日报表中,月年同样的方法,这样就减少在基础元表中去检索大量数据。

另外可以考虑将查询做成参数化存储过程,然后Web中调用,也可以提高效率。 --------------------编程问答-------------------- 如果是查历史数据的话,数据应该不会变动吧,可以将你要查询的结果先写个视图,然后在存储过程调用视图来分页查询,应该不会慢 --------------------编程问答-------------------- 帮顶! --------------------编程问答--------------------
引用 7 楼 tao526598085 的回复:
如果是查历史数据的话,数据应该不会变动吧,可以将你要查询的结果先写个视图,然后在存储过程调用视图来分页查询,应该不会慢


用视图,如果数据量很大的话,到时候更新 插入就会慢。。这也不是很好。 --------------------编程问答-------------------- 既然楼主只想要查询,那就不考虑更新数据的问题 --------------------编程问答--------------------
引用 5 楼 winner2050 的回复:
数据库进行优化。

难以想象大数量怎么不让技术骨干出马?

你们的客户看到这种现象不心寒吗?


如果一味的找技术骨干。那么后面还会有信任成长成骨干吗?这典型的是种不思进取,拿来主义的思维。难道你就一味甘心做个菜鸟,码农吗?如果你是。那你还真没资格去评价别人了。 
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,