trošku bych ho využil a zeptal se: mám poměrně složitou funkci (několik smyček, dotazy, updaty), je dosti pomalá. Zkontroloval jsem, zda jsou u všech WHERE a ORDER sloupců indexy, možná je úzké hrdlo v tom, že INSERT a UPDATE dotazy se generují za běhu.
Nicméně k otázce, zkusil jsem EXPLAIN SELECT MOJE_FUNKCE() a nic. Předpokládám, že EXPLAIN lze použít jen u funkcí, které vracejí tabulku (moje nic nevrací).
Jakým způsobem bych mohl snadno zjistit, co je brzdou dané funkce?
ps - tlačítka ODESLAT a ZOBRAZIT NÁHLED nefungují v Konqueroru, to je ale ostuda...
pro explain jsou funkce cernou skrinkou. Zkontroloval bych vsechny SQL prikazy. U prepared statements se nemusi chytit index, jelikoz se vytvari plan v okamziku, kdy neznam parametry. Tudiz natvrdo zapsany SQL prikaz muze byt efektivnejsi nez predzpracovany, a pak nezbyde nez pouzit EXECUTE. Urcite funguje (minimum +/- 8.0) FOR IN EXPLAIN SELECT ... LOOP (vypis provadeciho planu je tabulka).
Jinak se podivejte, jestli muzete pouzit
#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = off
nikdy jsem to netestoval. Predpokladam, ze to je k tomu na co se ptate,