Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2767478
  • 博文数量: 389
  • 博客积分: 4177
  • 博客等级: 上校
  • 技术积分: 4773
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-16 23:29
文章分类

全部博文(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秒


通过对比测试,我们发现数据库执行计算的效率比编程语言的效率要低得多.数据库的长处是在于存和读
取数据,因此尽量少使用数据库来做一些计算。

 

 

阅读(3164) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~