加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle统计信息

发布时间:2020-12-12 13:34:18 所属栏目:百科 来源:网络整理
导读:oracle统计信息 study ? oracle基础 ? 基础 统计信息相关 1.哪种优化器模式需要统计信息收集,ALL_ROWS 目前O3建议无论模式都进行统计信息收集,部分查询采取的是all_rows模式 --查看当前数据库CBO优化方式,默认all_rows方式CBO show parameter optimizer_mo
LAST_ANALYZED 上次时间 TABLE_NAME 表名 OWNER 用户 NUM_ROWS 当前条数 SAMPLE_SIZE 统计信息条数

3.什么是手工收集

使用DBMS_STATS包手工收集统计数据,其实自动收集的gather_stats_job作业本质上也是使用包来实现收集的,区别看是否是oralce自动执行的内部行为。

dbms_stats包提供几种过程来统计不同粒度的数据,分为统计数据库,模式,表以及索引

gather_database_statistics 为全库表的表统计数据 gather_schema_statistics 为某个模式统计数据 gather_table_statistics 为某个特定的表收集统计数据 gather_index_statistics 为某个索引表统计数据

统计数据会存储在***dba_tab_statistics*** 和 ***dba_tab_col_statistics***数据字典中

手工收集举例

  1. 为模式trade的所有表统计数据
  1. exec dbms_stats.gather_schema_stats(ownname => ‘TRADE‘);?
  1. 为TRADE下面的表tstockinfo统计数据
  1. exec dbms_stats.gather_table_stats( ‘TRADE‘,‘tstockinfo‘);?
  1. dept的索引统计数据
  1. select index_name,table_name from dba_indexes where owner =‘SCOTT‘;?
  2. exec dbms_stats.gather_index_stats(‘SCOTT‘,‘PK_DEPT‘);?

注:

  1. show parameter job_queue_processes;?
  2. --如果该参数为0,则统计信息包不会工作,?
  3. --需要设置参数?
  4. alter system set job_queue_processes=20 scope=both;?

手工收集整个数据库统计信息

  1. begin?
  2. dbms_stats.gather_database_stats(estimate_percent=>null);?
  3. edn;?
  4. /?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

oracle统计信息

study? oracle基础?

基础

统计信息相关

1.哪种优化器模式需要统计信息收集,ALL_ROWS

目前O3建议无论模式都进行统计信息收集,部分查询采取的是all_rows模式

--查看当前数据库CBO优化方式,默认all_rows方式CBO
show parameter optimizer_mode;  
--修改优化器模式
alter system set optimizer_mode=all_rows scope=both;

2.查询用户统计信息收集情况

# sql
select last_analyzed,table_name,owner,num_rows,sample_size from dba_tables where owner=‘SCOTT‘;

查询结果

字段名 对应
解释
    推荐文章
      热点阅读