Oracle千万级记录进行处理并不简单,下面就为您总结了Oracle千万级记录插入和查询的技巧,希望对您能够有所启迪。

最近做了个项目,实现对存在Oracle千万级记录的库表执行插入、查询操作。原以为对数据库的插入、查询是件很容易的事,可不知当数据达到百万甚至千万条级别的时候,这一切似乎变得相当困难。几经折腾,总算完成了任务。

1、防止运用 Hibernate框架

Hibernate用起来虽然方便,但对于海量数据的操作显得力不从心。

关于Oracle千万级记录插入:

试过用Hibernate一次性执行 5万条左右数据的插入,若ID运用 sequence方式生成,Hibernate将分5万次从数据库取得5万个sequence,构造成相应对象后,再分五万次将数据保存到数据库。花了我十分钟时间。主要的时间不是花在插入上,而是花在5万次从数据库取sequence上,弄得我相当郁闷。虽然后来把ID生成方式改成increase处理了疑问,但还是对那十分钟的等待心有余悸。

关于Oracle千万级记录查询:

Hibernate对数据库查询的主要思想还是面向对象的,这将使许多我们不须要查询的数据占用了大量的系统资源(包括数据库资源和本地资源)。由于对Hibernate的偏爱,本着不抛弃、不放弃的作风,做了包括配SQL,改良 SQL等等的相当多的尝试,可都以失败告终,不得不忍痛割爱了。

2、写查询语句时,要把查询的字段一一列出

查询时不要运用类似select * from x_table的语句,要尽量运用 select id,name from x_table,以防止查询出不须要的数据浪费资源。对于海量数据而言,一个字段所占用的资源和查询时间是相当可观的。

3、减少不必要的查询条件

当我们在做查询时,常常是前台提交一个查询表单到后台,后台分析这个表单,而后执行查询操作。在我们分析表单时,为了方便起见,常常喜欢将一些不须要查询的条件用永真的条件来代替(如:select count(id) from x_table where name like ‘%’),其实这样的SQL对资源的浪费是相当可怕的。

我试过对于同样的近一千万条记录的查询来说,运用 select count(id) from x_table 执行 表查询须要 11秒,而运用 select count(id) from x_table where name like ‘%’却花了33秒。

oracle 论坛 千万级表,Oracle千万级记录操作总结相关推荐

  1. oracle临时表与外部表,Oracle中的临时表、外部表和分区表

    在Oracle中,临时表是ldquo;静态rdquo;的,它与普通的数据表一样只需要一次创建,其结构从创建到删除的整个期间都是有效的.相 临时表 在Oracle中,临时表是"静态" ...

  2. oracle 12创建一个表,oracle 12 c 创建表空间,用户名,及表

    -----------------------------------------12C start------------------------------------------- -- 创建表 ...

  3. oracle dba开头的表,oracle中以dba_、user_、v$_、all_、session_、index_开头的常用表和视图...

    oracle中以dba_.user_.v$_.all_.session_.index_开头的常用表和视图 ----------------------------------------------- ...

  4. oracle非管理员锁表,oracle默认管理员的帐号和密码以及密码修改和解除锁定

    安装 ORACLE 时,若没有为下列用户重设密码,则其默认密码如下: 用户名 / 密码 登录身份 说明 sys/change_on_install SYSDBA 或 SYSOPER 不能以 NORMA ...

  5. oracle数据库exp备份表,oracle数据库exp备份表

    Oracle exp/imp,备份或导入时注意的事项 Oracle exp/imp,备份或导入时注意的事项: 本篇主要讲述的是Oracle exp/imp备份导入的实际操作中需要注意的事项的介绍,凡事 ...

  6. oracle 修改用户信息表,Oracle批量修改用户表table的表空间 | 学步园

    一.修改用户表table的表空间 1.修改用户表table的表空间:alter table 表名 move tablespace 新表空间名; 2.查询所有用户表:select * from user ...

  7. oracle 统计信息字典表,Oracle数据字典表查询

    /*显示当前用户*/ show user 在sql plus中可用,在pl sql中不可用 /*查看所有用户名*/selectusername,user_id,createdfromall_users ...

  8. oracle ebs hr模块表,oracle ebs常用表结构及分类模块.doc

    oracle ebs常用表结构及分类模块 Oracle application 表结构 表结构,WHO字段来实现 通过菜单HELP 下的HISTORY 来找表 2. 通过LAST_QUERY来判断所使 ...

  9. oracle通过dblink导表,oracle dblink用法总结和expdp和impdp利用dblink倒入导出到本地

    oracle中的database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表和执行远程程序.在任何分布式环境里,dblink都是必要的,另外注意da ...

最新文章

  1. Github标星2.3k+!这个仓库提供了靠谱的入门人工智能的路线及资料!
  2. 某面试官面试一个百度T7程序员,出了一道这样的coding题!T7竟不会!被面试官嘲笑!...
  3. 使用UISearchDisplayController
  4. Service 和 doGet 和 doPost 方法的区别
  5. hdu 5464(简单dp)
  6. Qt Creator连接裸机设备
  7. mysqlsla日志分析工具
  8. 虚拟主机linux系统404,虚拟主机404页面的设置方法!
  9. Windows 记事本的 ANSI、Unicode、UTF-8 这三种编码模式有什么区别?
  10. 常用数据验证正则表达式释义(附:正则表达式常用符号)
  11. 微型计算机系统与接口流水灯,单片机的LED流水灯系统设计2.doc
  12. 每日一言 api 接口
  13. 腾讯企业邮箱开发(非官方开发文档方式
  14. 06 legospike 官方教程 02——课堂管理 零件分类回收、遗失零件盒等
  15. 计算机一级解释,独家秘笈计算机一级错题解释.ppt
  16. 最常用的小程序demo
  17. 用 Python 把你的朋友变成表情包
  18. js诟病Typescript、Java、JavaScript之间的借鉴与总结
  19. Modelsim仿真——测试文件编写
  20. 富士胶片LTO磁带减排效益获认可;耀世星辉深度测试海外版语音社交产品“悦聊”CheerChat | 全球TMT...

热门文章

  1. python 字节码 优化_字节码优化
  2. jdbc mysql 存储过程查询数据_jdbc调用mysql存储过程实现代码
  3. 背包问题——01背包问题——Charm Bracelet
  4. signature=14a3e4f784cf9004647ea52bac22e550,维族老年慢性阻塞性肺疾病患者合并肺动脉高压的临床研究...
  5. php中头部含义,PHP 常用的header头部定义汇总大全
  6. 8备份sqlserver_关于SQL server 巡检的要点你都知道吗?
  7. html如何运用循环添加表格,萌新提问!!!如何用for循环循环表单?
  8. 7.Java 面试题整理(EJB 方面)
  9. Java讲课笔记33:多线程概述与线程创建
  10. Scala案例:词频统计