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