Zobrazují se příspěvky se štítkempráce. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkempráce. Zobrazit všechny příspěvky

26. dubna 2010

Jak databázi nepřidávat práci

Procházel jsem log soubor databáze a díval jsem se na dlouho trvající SQL dotazy. Několik jsem jich našel a většinou se shodovaly v jedné drobnosti – přidávaly databázi zbytečnou práci:


....
t.datum + '30 days'::interval > now()
....


O co v tomto případě jde? Dejme sloupec datum typu TIMESTAMP, od informace uložené v tomto sloupci odečítáme interval 30 dnů. Tím jsme znemožnili využít index nad sloupcem datum a také pro každý řádek znovu vyhodnocujeme výraz now().


Jednoduchou změnou lze dotaz znatelně zrychlit a navíc mu umožníme použít index nad sloupcem datum:

...
t.datum > 'now'::timestamp - '30 days'::interval
...


Také 'now'::timestamp - '30 days'::interval je vyhodnoceno pouze jednou, není třeba znovu počítat pro každé porovnání.

21. ledna 2010

Záhadné ClassCastException

Až Vám bude java poskytovat podobně záhadné výjimky, zkontrolujte, že nemáte některé třídy natažené 2x (například 2x natažená knihovna, jednou v Aplikačním serveru, podruhé ve spouštěné aplikaci):


java.lang.ClassCastException: org.medoro.util.scheduler.ProcessScheduler cannot be cast to org.medoro.util.scheduler.ProcessScheduler
at org.medoro.util.scheduler.LeskJob.getScheduler(LeskJob.java:59)
at org.medoro.util.scheduler.LeskJob.contextInitialized(LeskJob.java:90)
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:645)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:189)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:978)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:586)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:349)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
at org.eclipse.jetty.deploy.ContextDeployer.deploy(ContextDeployer.java:341)
at org.eclipse.jetty.deploy.ContextDeployer.access$000(ContextDeployer.java:66)
at org.eclipse.jetty.deploy.ContextDeployer$ScannerListener.fileAdded(ContextDeployer.java:88)
at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:412)
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:326)
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:282)
at org.eclipse.jetty.util.Scanner$1.run(Scanner.java:234)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)

22. ledna 2008

Král zemřel, ať žije král!

Několik let jsem spokojeně fungoval na notebooku Prestigio Nobile 157. Poslední dobou ale začal zlobit. Občas nešel zapnout, případně při práci zamrzl a nepomohlo nic než odpojení od zdroje a vytažení baterie (ano vím o možnosti podržet vypínač déle jak 4 sekundy, ale ani tohle nefungovalo).

21. září 2007

Flyspray: The Bug Killer!

Poslední dobou začínám ztrácet přehled o chybách a požadavcích na nové vlastnosti v projektech na kterých pracuji.

21. srpna 2007

Správa hesel

S rostoucím počtem serverů, ke kterým mám přístup a o které se starám roste množství hesel jež si musím pamatovat. Moje uživatelská hesla jsou tvořena tak, aby se dala snadno zapamatovat a přitom byly dostatečně složité. Horší je to s hesly superuživatele.

3. března 2007

Dodávka služeb v oblasti IT pro FirmaPoskytujiciAktivniTelemarketing™ a.s.? Ne, děkuji!

Znáte ty firmy, co chtějí vše, včera bylo pozdě, všechno je moc drahý a i když jste udělali přesně to co jsme poptávali, udělali jste to blbě?