如何计算oracle表单d2k应用程序中访问者的页面命中率或无命中率?
这里有一个选项:
-
创建一个表,例如
create table hits (form_name varchar2(30), hits number);
-
创建一个将用于维护该表的存储过程。它将是一个自治的事务过程(这样你就可以在不影响主事务的情况下
commit
(,它将锁定hits
表(它会影响多用户环境中的执行吗?不应该,它真的很快(。create or replace procedure p_hits (par_form_name in varchar2) is pragma autonomous_transaction; begin lock table hits in exclusive mode; merge into hits h using (select par_form_name form_name from dual) x on (x.form_name = h.form_name) when matched then update set h.hits = h.hits + 1 when not matched then insert (form_name, hits) values (par_form_name, 1); commit; end p_hits; /
-
在表单的
WHEN-NEW-FORM-INSTANCE
表单级别触发器中调用该过程:p_hits(:system.current_form);
仅此而已;查询hits
表以查看其内容。