全部博文(389)
分类: Oracle
2014-11-02 20:39:48
数据库执行效率的对比测试
今天看了一篇很有意思的文章,对比数据库和普通编程语言的效率测试,
测试的语言分别是mysql的存储过程,oracle plsql和perl.
测试机器是同一台机器上,测试标准是计算100万次的cos函数
oracle代码
create or replace procedure oraclesp
as
i integer;
j integer;
begin
for i in 0..1000000
loop
j:=cos(i);
end loop;
end;
SQL> exec oraclesp;
PL/SQL procedure successfully completed.
Elapsed: 00:00:07.38
执行时间7.38秒
mysql的代码
DELIMITER$$
DROP PROCEDURE IF EXISTS mysql_sp$$
create procedure mysql_sp()
begin
declare i integer;
declare j integer;
set i=0;
loop1:loop
if i>1000000
then leave loop1;
end if;
set j=cos(i);
set i=i+1;
end loop loop1;
end$$
delimiter ;
mysql> call mysql_sp();
Query OK, 0 rows affected (2.95 sec)
执行时间为2.95秒
perl代码
#!/usr/bin/perl -w
#writen by dongdongtang
use strict;
my $i;
my $j;
for ($i=0;$i<=1000000;$i++)
{
$j=cos($i);
}
[oracle@localhost 1102]$ time /home/oracle/1102/1.pl
real 0m0.114s
user 0m0.113s
sys 0m0.001s
花费时间是0.114秒
通过对比测试,我们发现数据库执行计算的效率比编程语言的效率要低得多.数据库的长处是在于存和读
取数据,因此尽量少使用数据库来做一些计算。