počet sql dotazů pri opětovném načtení
- pazuzu
- Člen | 29
Zdravim,
mel bych dotaz na pocet SQL queries. Kdyz smazu cache, tak chapu, ze se dela pri
prvnim nacteni hodne dotazu kvuli klicum, a pak uz jen par zakladnich dotazu ke
konkretni strance. Ale mam pripady, kdyz pri kazdem nacteni nette generuje stale
ten prvni velky pocet dotazu. Netusite nekdo, v cem by mohl byt pudl
zakopany?
diky
- David Matějka
- Moderator | 6445
A jsou to dotazy na ta metadata, nebo jsou to sql dotazy na samotná data, co vykresluješ?
- Kamil Valenta
- Člen | 820
Nesaháš třeba na
database->getStructure()->getColumns('table');
?
V tomhle okamžiku se mi to totiž děje taky. Přitom ty informace existují v cache a čekal bych, že je dostanu z tama. Netuší někdo, zda se struktura tabulky dá vzít z cache?
- pazuzu
- Člen | 29
ja v ten moment nedavam zadne dotazy na data, on jen dela tu cache porad znova :( presenter i latte neobsahuje zadne sql na data
getStructure nevolam, ale je zvlastni ze na jinem miste, kde se dokoce tahaji data, to udela jen pri prvnim nacteni, to mi prave neni moc jasne, takhle nevim, kde mam co hledat
- Polki
- Člen | 553
To vypadá na to, že máš kód navržený tak, že se databázové spojení nevytváří až při prvním požadavku lazy, ale že jej někde nějak vytváříš dříve, než je potřeba a to i v případě, že není potřeba.
Pak je jasné, že se aplikace takto chová, protože tam, kde se nějaké dotazy dělají se udělá dotaz jednou a jeho optimalizovaná forma se uloží do cache, takže příště se vytáhne z cache a zbytečné dotazy se neprovádí. Když ale navážeš spojení a tyto dotazy (na nějaká metadata například) se provedou, ale neprovede se žádný další dotaz, tak se nemá do cache co optimalizovaného uložit, takže při dalším načtení se toto provede znovu, jelikož je nastartováno připojení, ale nejsou v cache uložená optimalizovaná data, takže si aplikace myslí, že se do databáze dívá poprvé.
Doporučuji nejdřív smazat cache, jestli nejsou v ní nějaká stará data uložená, která by toto chování vyvolávala a když to nepomůže, tak doporučuji projít kód a zjistit, jestli je opravdu vše LAZY.
Editoval Polki (1. 5. 2021 9:35)