ITPub博客

首页 > 数据库 > Oracle > Oracle的压测

Oracle的压测

原创 Oracle 作者:xuexiaogang 时间:2021-12-13 17:35:57 0 删除 编辑

自己原文公众号: https://mp.weixin.qq.com/s/u2SdpvYvlNYk2EcPfKy0_w

之前姜老师发的这个数据。

我是认可的。

如果单CPU 是我们简单(不一定合理)估算2万多次。


我在上一篇的苏伊士运河的文章中我尝试单CPU每秒1万次登录。


我那个一次登录是select了两次。所以我上次写的每秒1万次登录,等于每秒2万次请求。一次是取密码,一次去取权限。所以也差不多。我们姑且这样论吧。


上期是MySQL版的,本期我们看看Oracle和后续的PostgreSQL版本的。


create table user (userid varchar(20),password varchar(20), primary key(userid));


create table qx (userid varchar2(20),qx varchar2(20));


create index xx on qx (userid);


create or replace procedure US as

t varchar2(10);

begin

for i in 1..500000 loop

SELECT DBMS_RANDOM.STRING ('A', 10) into t  FROM DUAL;

insert into users values ('T'||i,t);

end loop;

commit;

end;



create or replace procedure USqx as

t varchar2(10);

begin

for i in 1..500000 loop

SELECT DBMS_RANDOM.STRING ('A', 10) into t  FROM DUAL;

insert into qx values ('T'||i,t);

end loop;

commit;

end;



create or replace procedure query as

a varchar2(10);

b varchar2(10);

c varchar2(10);

d varchar2(10);

begin

for i in 1..500000 loop

SELECT userid,password into a,b  FROM users where userid='T'||i;

SELECT userid,qx into c,d  FROM qx where userid='T'||i;

end loop;

end;


我也开了三个线程,每个是把一个CPU用足了。50万次,10秒完成,也就是说1秒5万次。

在结构和逻辑以及数据量一致的情况下,可见单CPU  Oracle是MySQL的5倍。


我猜想这可能是因为Oracle的绑定变量的软软解析提高的能力,MySQL每个都是硬解析。


以上数据库是Oracle19C和MySQL8 都使用默认参数,未做任何调优的数据。



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/637517/viewspace-2847514/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: MySQL的压测
请登录后发表评论 登录
全部评论
OracleACE/PostgreSQLACE/阿里云MVP/腾讯云TVP/墨天轮 MVP/TiDBMVA/数盟会华东区长老/OpenTenBase社区委和技术委委员/架构师技术同盟名人堂成员上海地区理事会成员/if社区联合发起人/《DBA实战手记》作者/公众号:四海内皆兄弟

注册时间:2013-07-01

  • 博文量
    422
  • 访问量
    953256