2010-08-17 74 views
0

我试图基准存储过程。mysql 5.1:我如何使用benchmark()命令测试对存储过程的调用?

select benchmark(100000000,(select 1)); 

这个基准测试工作

但下面的基准并不:

do benchmark(1000,(call test_login_user('a'))); 

它产生以下错误:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'call xpofb_login_user('a')))' at line 1 

任何想法如何解决这个问题?

回答

5

你不能用标杆做到这一点(),但你可以创建一个存储过程来做到这一点。

下面是一个例子:

delimiter $$ 

create procedure benchmark_test_login_user (p_username varchar(100), 
    p_count int unsigned) 
begin 
    declare v_iter int unsigned; 
    set v_iter = 0; 
    while v_iter < p_count 
    do 
    call test_login_user(p_username); 
    set v_iter = v_iter + 1; 
    end while; 
end $$ 

delimiter ; 

call benchmark_test_login_user('a',1000); 
+0

这是不完全一样的东西,虽然。 – Mchl 2010-08-17 18:56:09

+1

没有,但它是一个合理的解决办法。 – 2010-08-17 19:15:52