Laděnka – dibiPanel – řazení dotazů

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
maarlin
Člen | 207
+
0
-

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?

phx
Člen | 651
+
+1
-

Pekny napad.

Ja bych hlavne uvital aby se SQL dotazy nezkracovaly. Kdyz mam delsi dotaz tak nakonci mam …

h4kuna
Backer | 740
+
+1
-

phx napsal(a):

Ja bych hlavne uvital aby se SQL dotazy nezkracovaly. Kdyz mam delsi dotaz tak nakonci mam …

taky jsem pro aby se nezkracovaly +1

Editoval matata (20. 10. 2010 0:42)

maarlin
Člen | 207
+
0
-

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
+
0
-

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

h4kuna
Backer | 740
+
0
-

Bernard Williams napsal(a):

dibi::query('/*MujModel:MojeMetoda()*/ SELECT nazev, ... FROM ...');

Bernard

Mas recht to je taky hodne dobry a udelat to klikaci primo do kodu v IDE. Jako je/bude to ted v Ladence.

Editoval matata (20. 10. 2010 17:11)

maarlin
Člen | 207
+
0
-

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.