co přesně dělá database.lazy

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

Celý dotaz jsem narval do přemětu :-) samozřejmě se jedná o nastavení v config.ini (bohužel tetno soubor není nikde pořádně zdokumentovaný) v dokumentaci jsem našel pouze základy :-(

sairon
Člen | 32
+
0
-

Není to v dokumentaci Nette, protože je to feature dibi – konkrétně ve třídě DibiConnection je psáno: lazy (bool) ⇒ if TRUE, connection will be established only when required

Funguje to tak, že se v případě, že hodnota není TRUE, připojuje k databázi už v konstruktoru DibiConnection. V opačném případě se připojení k databázi uskuteční až před zasláním dotazu díky řádku: $this->connected || $this->connect();. Více – viz dibi API

net-vor
Člen | 35
+
0
-

tak to není, database.lazy zapíná životní styl dibiny. Když to dáš na TRUE, budeš muset dibinu zásobovat pivem (případně – pokud je to ženská, a to s největší pravděpodobností je – likérem, květinami a hlavně lichotkami) a ona – možná, když budeš hodnej – ti udělá jeden, maximálně dva SQL requesty za den. Ale zas to budou pořádný requesty :-) No zkus si to sám…

bojovyletoun
Člen | 667
+
0
-

taky si myslím, že lazy nemá vliv na počet dotazů.

Co mě ale rozhodilo je toto:

$this->template->x = dibi::select("hh,id, count(hh)as ucast")->from("hh")->leftJoin("hhjj")->on("hh=id")->groupBy("id")->orderBy("hh")->fetchAll();
$this->template->y = dibi::select("ghh,gid, count(ghh)as ucast")->from("ghh")->leftJoin("hhjj")->on("ghh=gid")->groupBy("gid")->orderBy("ghh")->fetchAll();
$o = $this->template->exists = dibi::select("hh,ghh, 1 as m")->from("hhjj")->fetchAssoc("hh|ghh=m");

Pokud zavolám bez fetchAll(), tak počet dotazů stoupne z 3 na 38?
neměl by být počet sql stejný?

ps jde o tabulku, kde je 30 řádků a 10 sloupců a jde o šachovnici, kde je trú nebo fólz.

Editoval bojovyletoun (23. 11. 2010 19:43)