Oracle 数据库的统计功能?比如需要统计某个字段所对应的数据个数,并写入统计表,该如何操作。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 数据库的统计功能?比如需要统计某个字段所对应的数据个数,并写入统计表,该如何操作。相关的知识,希望对你有一定的参考价值。

用一个过程
create or replace procedure procedure_name as
begin
insert into 统计表
select 字段名1,count(1) from 表 group by 字段名1
--统计表中的字段。(字段名1,数量)。如果有其它字段,请加入到下面select语句中。如:
/* insert into 统计表
select 字段名1,sysdate,\'统计者的姓名\', count(1) from 表 group by 字段名1*/

end;
参考技术A 创建一个函数或过程,演示示例
CREATE OR REPLACE FUNCTION function_name()
return number
as
ll_count number;
begin
SELECT count(1) INTO ll_count FROM d_ct51c WHERE a='1';
INSERT INTO R_LHT_413 (counts) VALUES (ll_count );
return ll_count;
end;
/

Oracle统计信息(表、索引)更新怎么操作?

看到有人做过这种类似的操作,可以加快SQL的执行速度,我没有弄过,想问下:
A 如何做ORACEL针对某个用户的统计信息更新
B 如何让这种统计信息更新 (定期自动执行,比如一周执行一次)
以上操作可以在PLSQL中操作吗?
我是初学者,没有弄过,还请各位大虾多多指导,谢谢

A. oracle 提供了收集数据库统计信息的系统包,例如统计scott用户信息只需要执行:

exec dbms_stats.gather_schema_stats(
ownname => 'SCOTT',
options => 'GATHER AUTO',
estimate_percent => dbms_stats.auto_sample_size,
method_opt => 'for all columns size repeat',
degree => 15
);

dbms_stat.gather_schema_stats 的参数说请查相关资料,这里就不详述了。

B. 要定期执行用户统计信息很简单,只要在 oracle job 中调用这个过程就可以了,设置好初次调用时间和调用时间间隔即可。

以上的操作都能在plsql中操作。
参考技术A A 如何做ORACEL针对某个用户的统计信息更新

不大明白这个统计信息时什么意思?这个信息时什么信息?统计是个什么概念?

B 如何让这种统计信息更新 (定期自动执行,比如一周执行一次)
采用ORACLE的JOB作业

以上是关于Oracle 数据库的统计功能?比如需要统计某个字段所对应的数据个数,并写入统计表,该如何操作。的主要内容,如果未能解决你的问题,请参考以下文章

统计某单元格输入次数

怎样在一个单元格中显示出现次数

怎么统计oracle数据库下某个用户的表的数量

在Excel表格中如何统计某个范围内数值的个数

oracle分组统计(group)

zabbix有没有类似cacti的那种统计总流量的功能