如何提高数据库数据更新速率

Posted 我要出家当道士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何提高数据库数据更新速率相关的知识,希望对你有一定的参考价值。

一、场景介绍

最近需要测试 Oracle 日志保护程序的性能,需要在该程序运行过程中向数据库insert或update大量的数据,已生成足够多、增速足够快的日志数据。过程中还用 Java 编写了数据插入程序,以执行对数据库的数据更新操作。

下面是提高数据更新速率的方法。

二、相关方法

1、多线程、多会话

数据插入程序可以开启多线程、多会话进行数据更新操作。

2、多表

因为我的需求是生成足够多的日志,随意不局限于一个表,可以将多线程与表绑定,每个线程只负责一个表的数据更新。多个线程操作一个表的话,数据更新性能会受限的。

3、大字段

表中字段可以为大字段,例如 varchar2(4000),这样数据库insert或update的每一行都会占很大的空间,生成的日志也会占很大的空间。

4、多次操作后 commit

避免频繁的执行提交操作,insert、update执行多次后再 commit。

5、建立索引

建立索引可以避免 update 速率过慢的问题。

三、性能参数

两台测试主机配置:虚拟机、16核、16GB内存

这两台测试主机位于同一局域网内,一台部署了Oracle服务器(单实例),另一台部署了数据库插入程序。

Oracle数据库中新建了 8 个表;

数据插入程序开启了 16 个线程,每两个线程向一个表执行insert与update操作。

create table t0~7(id number,name varchar2(3072),age number,descs varchar2(3072));

在 insert 和 update 各执行了 160W 次后,测得如下性能。可以满足测试需求。

日志数据生成量(MB)

31200 MB

操作执行总耗时(ms)

2634122 ms

日志生成速率(MB/S)

11.85 MB/S

日志生成量(TB/Day)

0.976TB

以上是关于如何提高数据库数据更新速率的主要内容,如果未能解决你的问题,请参考以下文章

如何提高 Oracle SQL 数据库或 Web 服务性能?

如何提高WiFi数据传输速率

oracle速度变慢,怎样解决

提高数据库的查询速率及其sql语句的优化问题

如何加速Oracle大批量数据处理?

如何向一个oracle表中快速插入很多条数据