2011-03-22 29 views
10

Depolanmış yordam çağrılarım için EXPLAIN yöntemini nasıl kullanır ve kullanırım? Sorgu süresini optimize etmem gerekiyor, ancak EXPLAIN call proc_name() işlevini nerede yapabileceğimi bilmiyormuş gibi görünüyor mu?saklı yordam çağrıları

cevap

3

Eğer mysql saklanan prosedürleri açıklayamaz anda tabloismi

9

DESCRIBE takma adıdır tabloismi İZAH kullandığınızda dışında sadece SEÇ tablolarda eserler AÇIKLAYACAKTIR - ama böyle bir şey yapabileceğini:

drop procedure if exists get_user; 
delimiter # 
create procedure get_user 
(
in p_user_id int unsigned, 
in p_explain tinyint unsigned 
) 
begin 
    if (p_explain) then 
    explain select * from users where user_id = p_user_id; 
    end if; 
    select * from users where user_id = p_user_id; 
end# 

delimiter ; 

call get_user(1,1); 
16

Sen yürütme planını açığa vurmaz

set profiling=1; 
call proc_name(); 
show profiles; 
+1

deneyebilirsiniz, ancak prosedür her sorgu ne kadar sürdüğünü göstermektedir. – Brandon

İlgili konular