当前位置: 首页 > news >正文

Oracle查询大表的全部数据

2000w的大表 

 表结构如下,其中id是索引

查询处理慢的写法

List<String> queryLoidForPage(Integer startNum,Integer endNum){try {Connection oracleConnection = initBean.oracleConnection;Statement stmt = oracleConnection.createStatement();// 4.执行查询 long l = System.currentTimeMillis();ResultSet rs = stmt.executeQuery("SELECT username FROM LOID_TABLE_ID where id BETWEEN  "+startNum+" and "+endNum);System.out.println("查询耗时:"+(System.currentTimeMillis()-l));List<String> loids = new ArrayList<>();// 5.处理结果集 System.out.println("开始处理结果集");long l1 = System.currentTimeMillis();while(rs.next()){loids.add(rs.getString("username"));}System.out.println("处理结果集耗时:"+(System.currentTimeMillis()-l1));return loids;}catch (Exception e){e.printStackTrace();return new ArrayList<>();}}
开始查询0到10000条数据
查询耗时:79
开始处理结果集
处理结果集耗时:35988
结束查询0到10000条数据,耗时:36101
开始查询10000到20000条数据
查询耗时:36
开始处理结果集
处理结果集耗时:35910
结束查询10000到20000条数据,耗时:35946

10000条记录查询出来到处理好要35秒左右

查询处理快的写法

List<String> queryLoidForPage(Integer startNum,Integer endNum){try {Connection oracleConnection = initBean.oracleConnection;PreparedStatement pstmt = oracleConnection.prepareStatement("SELECT username FROM LOID_TABLE_ID WHERE id BETWEEN ? AND ?");// 设置查询参数pstmt.setInt(1, startNum);pstmt.setInt(2, endNum);// 设置 fetch size 以提高查询效率 根据实际情况调整 fetch sizepstmt.setFetchSize(1000);// 4.执行查询 long l = System.currentTimeMillis();ResultSet rs = pstmt.executeQuery();System.out.println("查询耗时:"+(System.currentTimeMillis()-l));List<String> loids = new ArrayList<>();// 5.处理结果集 System.out.println("开始处理结果集");long l1 = System.currentTimeMillis();while(rs.next()){loids.add(rs.getString("username"));}System.out.println("处理结果集耗时:"+(System.currentTimeMillis()-l1));return loids;}catch (Exception e){e.printStackTrace();return new ArrayList<>();}}
开始查询0到10000条数据
查询耗时:85
开始处理结果集
处理结果集耗时:370
结束查询0到10000条数据,耗时:498
开始查询10000到20000条数据
查询耗时:37
开始处理结果集
处理结果集耗时:370
结束查询10000到20000条数据,耗时:407
开始查询20000到30000条数据
查询耗时:36
开始处理结果集
处理结果集耗时:365
结束查询20000到30000条数据,耗时:403

10000条记录查询加处理400毫秒

总结:尽量使用预处理查询,设置fetch size,即pstmt.setFetchSize(1000)


文章转载自:
http://age.pzdurr.cn
http://bodyguard.pzdurr.cn
http://acrodont.pzdurr.cn
http://antemundane.pzdurr.cn
http://carex.pzdurr.cn
http://bionic.pzdurr.cn
http://broadtail.pzdurr.cn
http://beadwork.pzdurr.cn
http://aglimmer.pzdurr.cn
http://adventuresome.pzdurr.cn
http://auris.pzdurr.cn
http://birdcage.pzdurr.cn
http://carotid.pzdurr.cn
http://bourride.pzdurr.cn
http://alkermes.pzdurr.cn
http://barquisimeto.pzdurr.cn
http://cebuan.pzdurr.cn
http://aerotherapy.pzdurr.cn
http://cannulate.pzdurr.cn
http://anteport.pzdurr.cn
http://biostratigraphic.pzdurr.cn
http://aerobe.pzdurr.cn
http://cannonball.pzdurr.cn
http://breathy.pzdurr.cn
http://borazon.pzdurr.cn
http://anemic.pzdurr.cn
http://cappuccino.pzdurr.cn
http://befringe.pzdurr.cn
http://arenite.pzdurr.cn
http://anteater.pzdurr.cn
http://www.dtcms.com/a/134846.html

相关文章:

  • JDBC 初认识、速了解
  • 谷云科技iPaaS集成平台4月发布新版本V7.4
  • 谷歌发布统一安全平台:让企业安全防护更简单
  • Spring如何解决项目中的循环依赖问题?
  • AI日报 - 2025年04月16日
  • 10 穴 汽车连接器的15个设计特点
  • 【AGI】MCP生态的“飞轮效应”
  • [随笔杂谈] 计算机编程 —— 通用学习等级体系
  • 数据库—函数笔记
  • 智慧声防:构筑海滨浴场安全屏障的应急广播系
  • 设计和实现一个基于 DDS(直接数字频率合成) 的波形发生器
  • WPF静态资源StaticResource和动态资源DynamicResource有什么区别,x:Static又是什么意思?
  • 在Android Studio中,`Settings`里的Gradle路径、环境变量以及`gradle - wrapper.properties`文件关联
  • 【面向对象设计C++--翁恺】05-时钟例子+06-成员变量+07-构造和析构+08-对象初始化
  • 2025年最新图像生成模型调研报告
  • 大模型Qwen32b(FP16精度)部署所需的显存大小和并发数计算分析
  • 数据库ocp证书是什么水平
  • Spring-Bean的生命周期
  • 设计模式每日硬核训练 Day 12:装饰器模式(Decorator Pattern)完整讲解与实战应用
  • 2025年RIE SCI2区:三角变异黏菌算法TMSMA,深度解析+性能实测
  • [连载]Transformer架构详解
  • 【Ubuntu | 网络】Vmware虚拟机里的Ubuntu开机后没有网络接口、也没有网络图标
  • Redis 数据类型全解析:从基础到实战应用
  • 【含文档+PPT+源码】基于Python的快递服务管理系统【
  • 沃尔玛墨西哥30分钟极速配送:即时零售战争中的「超导革命」
  • 25N50-ASEMI工业电源专用25N50
  • Spring Batch 专题系列(五):错误处理与重试机制
  • 利用宝塔面板搭建RustDesk服务
  • 边缘计算与隐私计算的融合:构建数据经济的“隐形护盾“
  • Numba 从零基础到实战:解锁 Python 性能新境界