Oracle千万级记录插入和查询技巧总结
创始人
2024-07-17 17:51:32
0

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恢复结构

详解Oracle物理结构

深入了解Oracle表空间

Oracle启动模式的三个阶段

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...