Laděnka – dibiPanel – řazení dotazů
- maarlin
- Člen | 207
Mám takový malý feature request k debugBaru, konkrétně k dibiPanelu, který vypisuje jednotlivé SQL dotazy, jak jdou po sobě.
Je to nesmírně užitečná věc, ale dala by se ještě o trochu více zužitečnit třeba tak, že půjdou ty dotazy seřadit podle doby vykonávání (tj. podle toho prvního sloupce)?
Možná by to šlo přímo JavaScriptem (tzn. z hotových vypsaných dat), ale teď z hlavy mě nic konkrétního nenapadá…
Co vy na to?
- maarlin
- Člen | 207
phx napsal(a):
Ja bych hlavne uvital aby se SQL dotazy nezkracovaly. Kdyz mam delsi dotaz tak nakonci mam …
+1
Možná by se dalo použít pro to řazení toto:
http://www.wrichards.com/…ng-elements/
respektive
http://plugins.jquery.com/…/ElementSort
Editoval maarlin (20. 10. 2010 17:10)
- Bernard Williams
- Člen | 207
Nazdárek,
já bych spíš uvítal nový sloupec, kde by se zobrazoval původ scriptu – tj. v jakém scriptu/třídě je daný SQL dotaz definovaný. Na stránce se mi spouští několik SQL dotazů, které se od sebe neliší a vždy na něj musím chvilku koukat, než si uvědomím, který je který. Zatím to řeším pevně vepsanou poznámkou:
dibi::query('/*MujModel:MojeMetoda()*/ SELECT nazev, ... FROM ...');
Ponz. Jedna dvojtečka je tam záměrně, protože dvě dvojtečky již svou funkci mají.
Bernard
- maarlin
- Člen | 207
Chvíli jsem se teď šťoural v poslední revizi dibi (= 1.5rc) a rád bych trochu zaktualizoval tento topic:
phx napsal(a):
Pekny napad.
Ja bych hlavne uvital aby se SQL dotazy nezkracovaly. Kdyz mam delsi dotaz tak nakonci mam …
$profiler = new DibiProfiler;
DibiProfiler::$maxLength = 9000; // or any other big number
DibiProfiler::$maxQueries = 90; // or any other big number
dibi::getConnection()->setProfiler($profiler);
Jediný problém je, že ale v tuto chvíli dibi nereaguje vůbec na
proměnnou $maxQueries… ale to se asi tvého problému úplně netýká… to
jen btw.
Bug report popisuji na dibi
fóru.
Bernard Williams napsal(a):
Nazdárek,
já bych spíš uvítal nový sloupec, kde by se zobrazoval původ scriptu – tj. v jakém scriptu/třídě je daný SQL dotaz definovaný. Na stránce se mi spouští několik SQL dotazů, které se od sebe neliší a vždy na něj musím chvilku koukat, než si uvědomím, který je který. Zatím to řeším pevně vepsanou poznámkou:
dibi::query('/*MujModel:MojeMetoda()*/ SELECT nazev, ... FROM ...');
Ponz. Jedna dvojtečka je tam záměrně, protože dvě dvojtečky již svou funkci mají.
Bernard
Nějaký „zárodek“ vypadá, že se objevil v poslední revizi…
https://github.com/…Profiler.php#L116
Zobrazuje se teď u každého dotazu první soubor z backtrace… což
popravdě ale není moc užitečné… protože z nějakého důvodu v poli,
co vrátí backtrace vůbec není nikde ten soubor Modelu.
Např. v případě že volám nad nějakou metodou modelu ->fetchAll()
v presenteru, vrátí to tuhle backtrace:
...\www\libs\dibi\libs\DibiConnection.php
...\www\libs\dibi\libs\DibiConnection.php
...\www\libs\dibi\libs\DibiFluent.php
...\www\libs\Nette\loader.php
Eventuálně je na konci místo loader.php vygenerovaný soubor patřičného templatu.