每次执行选择查询时都会从表中统计记录

问题描述:

我希望统计表中的所有记录,只要在架构中执行选择查询。每次执行选择查询时都会从表中统计记录

每次我都无法从(select_query)写入select count(*)。 我想要一个实用程序,程序,func等计数表中的记录 注意:我使用SQL devloper工具。

查询看起来特别奇怪。这可以真正削弱你的数据库。 (根据数据库的优化器模式和使用级别,这将“杀死”它)。

我看到的唯一方法是使用细粒度审计(DBMS_FGA)as explained here

它应该很容易从例如添加像

select_sql := sys_context('userenv','current_sql'); 
if instr(select_sql, 'select /*counter*/ count(*)') = 0 then 
     nb_rows := execute immediate('select /*counter*/ count(*) from (' || select_sql || ')'); 
end if; 

并将结果存储在专用表格或发送别处。

当然,您应该为每个表格生成一个触发器。