Necetl jsem clanek cely, ale ja se potkal s podobnym problemem na Informixu 9.x.
Potreboval jsem v ulozene procedure znat timestamp pri spusteni SP a po ukonceni, pouzil jsem klicove slovo CURRENT, ale vracelo to v obou pripadech stejny cas.
No a duslednym prolizanim webu jsem nakonec zjitil, ze je to norma ANSI SQL. Zkratka v ramci behu ulozene procedury (a to vcetne vsech dalsi v ni volanych) vraci v Informixu CURRENT casove razitko spusteni procedury. Nic vic, nic min...
Informix znam jenom z rychliku, ale v PL/SQL (tj. Oracle) SYSDATE vraci skutecny cas a nikoliv dobu spusteni, krome toho pokud potrebujete zjistit dobu behu nejakeho kodu tak ma Oracle vcelku sikovnou vecicku DBMS_UTILITY.GET_TIME.
Nejedná se o čas spuštění procedury ale o čas zahájení aktuální transakce. Což by nebylo až tak na závadu. 'now' vrací čas překladu, prvního spuštění v rámci session funkce, což se asi moc neužije. Jinak můžete použít klasiku now() nebo CURRENT_TIMESTAMP - které vrací čas celkem logincky čas transkace, nebo timeofday(), který vrací skutečný čas.
Ono něco vymyslete? Je to hnusný patvar, naprosto souhlasím. A několikrát jsem tu kritizoval za to sám ostatní autory. Kdybych měl použít slovo cache jednou, dvakrát použil bych angličtinu. To ale není případ tohoto článku. Nakonec jsem na jazykovou čistotu rezignoval. Psal jsem to pro programátory jako čistě praktickou poznámku, nikoliv jako odbornou vědeckou práci.
Za to kešování se také přimlouvám, spíš bych použil slova jako příprava či předpříprava prováděcích plánů. Potom místo nakešovaný bych dal předpřipravený/připravený a je to :-)
Myslim dokonce, ze to je lepsi preklad, nez kesovani. Preklad prikazu (a smyslu prikazu) exec_prepare_plan je priprava provadeciho planu spise nez kesovani provadeciho planu (take vzhledem k tomu, ze kesovani neni cesky).