求超大数据量自定义分页思路,或伪代码

iwanghs 2010-11-04 12:31:48
本人一直都用查出数据再加行号的办法,通过再查相对应行号来实现自定义分页的,可是听说这样作一但遇到超大数据量就有问题了,所以求超大数据量自定义分页思路,要是有伪代码更好.
...全文
123 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
PitTroll 2010-11-11
  • 打赏
  • 举报
回复
/// <summary>
/// 把一般的查询sql处理成分页用的sql
/// </summary>
/// <param name="sql">一般的sql</param>
/// <param name="pn">当前页数</param>
/// <param name="countPerPage">每一页的个数</param>
/// <returns>返回分页用的sql</returns>
public static string SQLFenyeChuli(string sql, int pn, int countPerPage)
{
try
{
string topCount = (pn * countPerPage).ToString();//获取获取前多少条数据
string strAlreadyCount = ((pn - 1) * countPerPage).ToString();//获取已经查询的数据

string rtn = sql.Insert(6, " top " + topCount + " 0 as tempcolumn,");//在select后面插入分页用的数据
rtn = "select * from (select row_number() over (order by tempcolumn) temprow, * from (" + rtn + ")tt)t where temprow >" + strAlreadyCount;

return rtn;
}
catch
{
return "";
}
}
2005以及以上版本可以试试上面的。这个只能对于一般的sql文,复杂的如:union就要另想办法了。
消失的尘芥 2010-11-11
  • 打赏
  • 举报
回复
分页存储过程实现
dalmeeme 2010-11-11
  • 打赏
  • 举报
回复
主要是sql查询语句:select top pagesize * from tablename where 主键字段 not in(select top ((pageindex-1)*pagesize) 主键字段 from tablename
来控制分页,每次只取出要显示的部分。
很靠谱先生 2010-11-11
  • 打赏
  • 举报
回复
asp.net+sqlserver的话实现分页我一般都是用存储过程 网上有很多 找一个自己整 这样才能进步
Adechen 2010-11-04
  • 打赏
  • 举报
回复
网上找找分页存储过程,
hztltgg 2010-11-04
  • 打赏
  • 举报
回复
一直很疑惑超大数据量的分页需求是哪儿来的?有用户会一页页看么?看到什么时候啊,csdn上的100条才分页,而且每条都是有具体内容的,有些只有一个标题的信息还分页,真不知道搞什么。

查询和过滤做好,信息类别做明确,同类别的按信息性质分类,如年度、月份等,根本不用分页功能。
龍月 2010-11-04
  • 打赏
  • 举报
回复
自己写分页 存储过程
微工程 2010-11-04
  • 打赏
  • 举报
回复
一次取一部分,只能这样
如果加行号(sql2005以上),就把取出的存临时表
kkbac 2010-11-04
  • 打赏
  • 举报
回复
超大是多大? 数据量级别是多少? 要不然sql2005自带的rownumber就可以了.

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧