Oracle千万级记录插入和查询技巧总结

数据库 Oracle
Oracle数据库中的数据达到百万甚至千万条级别的时候,执行插入、查询似乎变得相当困难,这需要我们仔细去研究思考。

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启动模式的三个阶段

责任编辑:段燃 来源: 互联网
相关推荐

2009-04-08 10:20:43

Oracle插入查询

2018-07-30 14:40:01

MySQLSQL查询

2010-11-15 13:47:13

oracle记录加锁

2010-04-23 16:35:02

Oracle 查询记录

2011-05-24 10:04:39

Oracle重复记录

2010-10-27 16:14:24

Oracle参数查询命

2023-02-24 16:37:04

MySQL数据查询数据库

2011-09-02 10:06:51

OracleSqlLoad常用技巧

2010-05-06 17:30:56

Oracle查询语句

2010-04-21 12:49:57

Oracle性能

2010-10-27 15:11:52

oracle递归查询

2010-04-07 09:09:49

Oracle查询

2011-08-19 09:30:42

分页查询SQL ServerMySQL

2011-03-17 14:09:25

Oracle数据库字符

2010-04-30 10:24:00

Oracle查询指定记

2011-03-01 16:30:55

Oracle

2011-03-11 16:25:53

Oracle数据库

2019-12-09 09:52:38

设计软件数据库

2010-11-15 14:42:03

Oracle查询重复记

2010-10-28 17:08:11

Oracle查询
点赞
收藏

51CTO技术栈公众号