Vlákno názorů k článku Zákys jménem flattening od anonym - Moc pěkný článek, trošku bych ho využil a zeptal...

  • Článek je starý, nové názory již nelze přidávat.
  • 8. 3. 2007 22:57

    bez přezdívky
    Moc pěkný článek,

    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...
  • 8. 3. 2007 23:46

    Pavel Stehule (neregistrovaný)
    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,