首页 新闻 会员 周边 捐助

asp.net数据分页问题

0
悬赏园豆:50 [已关闭问题] 关闭于 2011-05-09 15:49

  如何能在百万条数据的表内快速的分页、查找、添加、删除、修改信息?那位高手可不可以给点指示,小弟在这感激不尽!

学永不止步的主页 学永不止步 | 初学一级 | 园豆:195
提问于:2011-04-27 13:08
< >
分享
所有回答(7)
0

 海量数据库的查询优化及分页算法方案(摘自博客园)

http://blog.csdn.net/lilei_jn/archive/2006/01/12/577178.aspx

老虞 | 园豆:99 (初学一级) | 2011-04-27 13:18
0

写分页存储过程,并建立索引。

冬的希望 | 园豆:205 (菜鸟二级) | 2011-04-27 14:00
0

分页存储过程:如select * from (select Id,name,Row_Number over(order by id)as rownum) t

where t.rownum>=startIndex and t.rownum<=endIndex

当然还有很多细节,一个最重要是建立索引(同意楼上),其他的细节,如:返回指定的列,调整where子句的位置,用where代替having,用exists代替in,用表链接代替exists,避免在索引上使用计算,用union all 代替union等等(参考sql金典一书)。

关于查询性能的优化还有几点(参考sql2008实战)

1.在减少使用列的同时,也可以考虑减少行

2.尽管单个查询去执行负责的操作显得很方便,但是不要低估短小的查询的能力。如果存储过程中有一个执行很长时间的非常大查询,可以试着分解为几个更小的中间结果的查询

3.只在需要的时候使用order by。大结果集的排序会导致额外的开销。如果不是必须的就不用

4.避免在from,where和having子句中隐式转换数据类型。

5.如果唯一行不是必须的,就不需要使用distinct或union(而是使用union all)

6.当在游标与基本集合的方法之间进行选择时,最好选择后者。

.......

希望对你有点帮助

加百力 | 园豆:533 (小虾三级) | 2011-04-27 14:15
还有什么办法没?
支持(0) 反对(0) 学永不止步 | 园豆:195 (初学一级) | 2011-04-29 13:23
0

分页最好在server端,也就是database中实现。Sql server 2005/2008, Oracle 用rownumber ,Mysql 用 limit。是否用存储过程决定你的需要。

PetterLiu | 园豆:354 (菜鸟二级) | 2011-04-27 14:58
0

添加索引,將數據分塊,記錄User常用操作等等

soarfe | 园豆:146 (初学一级) | 2011-04-27 15:00
0

使用存储过程分页,在关键字段建立索引

/aiq浪子飞龙 | 园豆:1189 (小虾三级) | 2011-04-29 15:48
0

好的指引 简单叙述了

杨书宇 | 园豆:202 (菜鸟二级) | 2019-07-08 15:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册