最近的一个项目采用winform+access,但后来发现客户那边的数据量比较大,有数十万条数据。用sql语句进行分页,每次翻页加载都需要8秒钟左右,实在难以忍受。

后来百度了一下,发现一篇文章我的Access百万数据分页,按照其中提供的思路,修改了一下,每次翻页需要2.5秒左右,勉强可以接受了。

1、添加ADODB引用,我这里用的是ADODB 2.8

2、分页记录获取函数如下,此函数仅返回主键Id,然后再用select * from tb where id in (主键id)绑定分页数据

private string[] GetPageRecordId(string sql, int pageIndex, int pageSize)
{
string[] retStr = new string[2];
ADODB.Recordset rs = new ADODB.Recordset(); rs.Open(sql, AccessDbClass.ConnString, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockReadOnly, 1); int count = rs.RecordCount; if (count > 0)
{
rs.AbsolutePosition = (ADODB.PositionEnum)((pageIndex - 1) * pageSize + 1);
retStr[0] = rs.GetString(ADODB.StringFormatEnum.adClipString, pageSize, ",", ",", "").TrimEnd(',');
retStr[1] = rs.RecordCount.ToString();
}
else
{
retStr[0] = "0";
retStr[1] = "0";
} rs.Close();
return retStr;
}

  

access十万级数据分页的更多相关文章

  1. Access大数据高效分页语句

    Access大数据高效分页语句 oracle的分页查询可以利用rowid伪列. db2的分页查询可以利用row_number() over()聚合函数. mysql有limit. access仿佛先天 ...

  2. limit 百万级数据分页优化方法

    mysql教程 这个数据库教程绝对是适合dba级的高手去玩的,一般做一点1万 篇新闻的小型系统怎么写都可以,用xx框架可以实现快速开发.可是数据量到了10万,百万至千万,他的性能还能那么高吗? 一点小 ...

  3. mysql百万级数据分页查询缓慢优化-实战

    作为后端攻城狮,在接到分页list需求的时候,内心是这样的 画面是这样的 代码大概是这样的 select count(id) from …       查出总数 select * from …. li ...

  4. MySQL百万级数据分页查询及优化

    方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N 适应场景: 适用于数据量较少的情况(元组百/千级) 原因/缺 ...

  5. MySQL全面瓦解21(番外):一次深夜优化亿级数据分页的奇妙经历

    背景 1月22号晚上10点半,下班后愉快的坐在在回家的地铁上,心里想着周末的生活怎么安排. 突然电话响了起来,一看是我们的一个开发同学,顿时紧张了起来,本周的版本已经发布过了,这时候打电话一般来说是线 ...

  6. C# 几十万级数据导出Excel,及Excel各种操作

    先上导出代码 /// <summary> /// 导出速度最快 /// </summary> /// <param name="list">&l ...

  7. sql 百万级或千万级数据分页处理

    笔记来源 https://blog.csdn.net/zhenyuanjie/article/details/7778102

  8. mysql百万级分页优化

    普通分页 数据分页在网页中十分多见,分页一般都是limit start,offset,然后根据页码page计算start , 这种分页在几十万的时候分页效率就会比较低了,MySQL需要从头开始一直往后 ...

  9. Mysql分页查询性能分析

    [PS:原文手打,转载说明出处,博客园] 前言 看过一堆的百度,最终还是自己做了一次实验,本文基于Mysql5.7.17版本,Mysql引擎为InnoDB,编码为utf8,排序规则为utf8_gene ...

随机推荐

  1. Maven项目中使用本地JAR包

    <dependency> <groupId>com.TEST</groupId> <artifactId>hm-test</artifactId& ...

  2. 使用npm install时一直报错-4048 operation not permitted

    一:权限问题 首先看到operation not permitted我们能想到权限问题,所以这时候我们可以以管理员身份运行cmd或者直接快捷键Win+X来打开. 二:依赖包错误 如上图,根据错误日志我 ...

  3. ZZW原创_rsync同步时由于注释问题引起的@ERROR: chdir failed

    1.需求:A机器同步文件到B机器 2.问题: A机器执行如下命令: [root@sv0379 rsync]# rsync -vzrtopg  --password-file=/usr/local/rs ...

  4. Python3+SQLAlchemy不使用字段名获取主键值教程

    一.说明 1.1 环境说明 user model如下,且其现有一个实例user_inst: class User(Base): __tablename__ = 'users' username = C ...

  5. 20175227张雪莹 2018-2019-2 《Java程序设计》第六周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第六周学习总结 教材学习内容总结 第七章 内部类与异常类 内部类:在一个类中定义另一个类:包含内部类的类为外嵌类 内部类 ...

  6. easyui 如何为标签动态追加属性实现渲染效果

    简述一下在项目遇到的问题,这边有一个需求,选择不同类型,加载不同的div标签(其中属性是否必填是区分类型的关键) html界面是这样的 <div class="grid_1 lbl&q ...

  7. SQL语句中Left join,right join,inner join用法

    转载于:https://blog.csdn.net/lichkui/article/details/2002895 一.先看一些最简单的例子 例子 Table Aaid   adate 1      ...

  8. jmeter+jdk 环境搭建

    1.安装jdk环境  https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html 划上重点,,,如果发现java -version不 ...

  9. 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络(转)

     reference:https://www.cnblogs.com/kevingrace/p/5909719.html https://www.cnblogs.com/awkflf11/p/9190 ...

  10. Qml和C++开发的学生信息管理软件一

    一个月前接触到了Qml,也做过一些练习,但只能实现动画和简单的布局功能,逻辑部分和数据处理很难上手,看到许多人将C++和结合起来,Qml负责界面设计,C++实现逻辑处理,但将C++注册到 Qml中一直 ...