1、概述

作用:用于搜集,查看,修改数据库对象的优化统计信息.

2、包的组成

1)、get_column_stats
作用:用于取得列的统计信息
语法:dbms_stats.get_column_stats(ownname
varchar2,tabname varchar2,colname varchar2,partname varchar2 default
null,stattab varchar2 default null,
statid varchar2 default
null,distcnt out number,density out number,nullcnt out number,srec out
statrec,avgclen out number,statown varchar2 default null);
其中ownname指定方案名,tabname指定表名,colname指定列名,partname指定分区名,stattab指定用户统计表名,statid指定与统计相关的标识符,distcnt返回不同值的个数,
density返回列的密度,nullcnt返回列的null个数,srec返回列的最大、最小和直方图值,avgclen返回列的平均长度,statown指定包含stattab的方案名。

2)、get_index_stats
作用:用于取得索引的统计信息
语法:dbms_stats.get_index_stats(ownnane varchar2,indname varchar2,
partname varchar2 default null,stattab varchar2 default null,
statid varchar2 default null,numrows out number,
numlblks out number,numdist out number,
avglblk out number,avgdblk out number,clstfct out number,
indlevel out number,statown varchar2 default null);
其中ownnane指定索引所有者名,indname指定索引名,partname指定索引分区名,
stattab指定统计表名,statid指定统计表相关的标识符,numrows返回索引行数,
numlblks返回索引块个数,numdist返回索引不同键值个数,
avglblk返回每个键值占用的平均叶块个数,avgdblk返回每个键值对应表行所占用的平均数据块个数,
clstfct返回索引的聚簇因子,indlevel返回索引层数,statown指定统计表所有者。

3)、get_system_stats
作用:用于从统计表或数据字典中取得系统统计信息
语法:dbms_stats.get_system_stats(status out varchar2,dstart out date,dstop out date,
pname
varchar2,pvalue out number,stattab in varchar2 default null,statid in
varchar2 default null,statown in varchar2 default null);
其中status返回状态信息(completed,autogathering,manualgathering),dstat返回起始搜集日期,dstop返回结束搜集日期,
pname指定要取得的参数名(sreadtim,mreadtim,cpuspeed,mbrc,maxthr,slavethr),pvalue返回参数值。

4)、get_table_stats
作用:用于取得表的统计信息
语法:dbms_stats.get_table_stats(owname varchar2,tabname varchar2,
partname varchar2 default null,stattab varchar2 default null,
statid varchar2 default null,numrows out number,numblks out number,
avgrlen out number,statown varchar2 default null);
其中avgrlen返回表行的平均长度。

5)、delete_column_stats
作用:用于删除列的统计信息。
语法:dbms_stats.delete_column_stats(ownname varchar2,tabname varchar2,colname varchar2,
partname varchar2 default null,stattab varchar2 default null,statid varchar2 default null,
cascade_parts boolean default true,statown varchar2 default null,no_invalidate boolean default false);
其中cascade_parts指定是否要级联删除分区统计,no_invalidate指定是否要使相关游标无效。
例子:dbms_stats.delete_column_stats('scott','emp','ename');

6)、delete_index_stat
作用:用于删除索引统计信息
语法:dbms_stats.delete_index_stats(ownname varchar2,indname varchar2,
partname varchar2 default null,stattab varchar2 default null,
statid varchar2 default null,cascade_parts boolean default true,
statown varchar2 default null,no_invalidate boolean default false);
例子:exec dbms_stats.delete_index_stats('scott','pk_emp');

7)、delete_system_stats
作用:用于删除系统统计信息
语法:dbms_state.delete_system_stats(stattab varchar2 default null,
statid varchar2 default null,statown varchar2 default null);

8)、delete_table_stats
作用:用于删除表的统计信息
语法:dbms_stats.delete_table_stats(ownname varchar2,tabname varchar2,
partname varchar2 default null,stattab varchar2 default null,
statid varchar2 default null,cascade_parts boolean default true,
cascade_columns boolean default true,cascade_indexes boolean default true,
statown varchar2 default null,no_invalidate boolean default false);
其中cascade_columns指定是否级联删除列统计,cascade_indexes指定是否级联删除索引统计。
例子:exec dbms_stats.delete_table_stats('scott','emp');

9)、delete_schema_stats
作用:用于删除特定方案的统计信息
语法:dbms_stats.delete_schema_stats(ownname varchar2,stattab varchar2 default null,
statid varchar2 default null,statown varchar2 default null,no_invalidate boolean default false);
例子:exec dbms_stats.delete_schema_stats('scott');

10)、delete_database_stats
作用:用于删除整个数据库的统计信息
语法:dbms_stats.delete_database_stats(stattab varchar2 default null,statid varchar2 default null,
statown varchar2 default null,no_invalidate boolean default false);
例子:exec dbms_stats.delete_database_stats

11)、create_stat_table
作用:用于在特定方案建立统计表
语法:dbms_stats.create_stat_table(ownname varchar2,stattab varchar2,tblspace varchar2 default null);
其中tblspace指定统计表所在表空间。
例子:exec dbms_stats.create_stat_table('scott','stattab');

12)、drop_stat_table
作用:用于删除特定方案的统计表
语法:dbms_stats.drop_stat_table(ownnanme varchar2,stattab varchar2);
例子:exec dbms_stats.drop_stat_table('scott','stattab');

13)、export_column_stats
作用:用于导出列统计并存储到统计表中。
语法:dbms_stats.export_column_stats(ownname varchar2,tabname varchar2,colname varchar2,
partname varchar2 default null,stattab varchar2,
statid varchar2 default null,statown varchar2 default null);
例子:exec dbms_stats.export_column_stats('scott','emp','ename',stattab=>'stattab');

14)、export_index_stats
作用:导出索引统计信息,并存储到统计表中
语法:dbms_stats.export_index_stats(owname varchar2,indname varchar2,
partname varchar2 default null,stattab varchar2,
statid varchar2 default null,statown varchar2 default null,
statown varchar2 default null);
例子:exec dbms_stats.export_index_stats('scott','pk_emp',stattab=>'stattab');

15)、export_system_stats
作用:用于导出系统统计信息,并存储到统计表中。
语法:dbms_stats.export_system_stats(stattab varchar2,statid varchar2 default null,statown varchar2 default null);

16)、export_table_stats
作用:用于导出表的统计信息,并将其存储到统计表中
语法:dbms_stats.export_table_stats(ownname varchar2,tabname varchar2,partname varchar2 default null,stattab varchar2,
statid varchar2 default null,cascade boolean default true,statown varchar2 default null);
例子:exec dbms_stats.export_table_stats('scott','emp',stattab=>'stattab');

17)、export_schema_stats
作用:用于导出方案的统计信息,并将其存储到统计表中。
语法:dbms_stats.export_schema_stats(ownname varchar2,stattab varchar2,
statid varchar2 default null,statown varchar2 default null);
例子:exec dbms_stats.export_shcema_stats('scott',stattab=>'stattab');

18)、export_database_stats
作用:用于导出数据库的所有统计信息,并存储到统计表中。
语法:dbms_stats.export_database_stats(stattab varchar2,statid varchar2 default null,statown varchar2 default null);
例子:exec dbms_stats.export_database_stats(stattab=>'stattab',statown=>'scott');

19)、import_column_stats
作用:用于从统计表取得列统计,并将其存储到数据字典中。
语法:dbms_stats.import_column_stats(ownname varchar2,tabname varchar2,colname varchar2,
partname
varchar2 default null,stattab varchar2,statid varchar2 default
null,statown varchar2 default null,no_invalidate boolean default false);
例子:exec dbms_stats.import_column_stats('scott','emp','ename',stattab=>'stattab',statown=>'scott');

20)、import_index_stats
作用:用于从统计表中取得索引统计,并将其存储到数据字典中。
语法:dbms_stats.import_index_stats(ownname varchar2,indname varchar2,
partname varchar2 default null,stattab varchar2,statid varchar2 default null,
statown varchar2 default null,no_invalidate boolean default false);
例子:exec dbms_stats.import_index_stats('scott','pk_emp',stattab=>'stattab',statown=>'scott');

21)、import_system_stats
作用:用于从统计表中取得系统统计,并将其存储到数据字典中。
语法:dbms_stats.import_system_stats(stattab varchar2,statid varchar2 default null,statown varchar2 default null);

22)、import_table_stats
作用:用于从统计表中取得表统计,并将去存储到数据字段中。
语法:dbms_stats.import_table_stats(ownname varchar2,tabname varchar2,partname varchar2 default null,
stattab varchar2,statid varchar2 default null,cascade boolean default true,
statown varchar2 default null,no_invalidate boolean default false);
例子:exec dbms_stats.import_table_stats('scott','emp',stattab=>'stattab',statown=>'scott');

23)、import_schema_stats
作用:用于从统计表中取得方案统计,并将去存储到数据字典中。
语法:dbms_stats.import_schema_stats(owname varchar2,stattab varchar2,
statid varchar2 default null,statown varchar2 default null,no_invalidate boolean default flase);
例子:exec dbms_stats.import_schema_stats('scott',stattab=>'stattab',statown=>'scott');

24)、import_database_stats
作用:用于从统计表中取得数据库所有对象的统计,并将其存储到数据字典中。
语法:dbms_stats.import_database_stats(stattab varchar2,statid varchar2 default null,
statown varchar2 default null,no_invalidate boolean default false);
例子:exec dbms_stats.import_database_stats(stattab=>'stattab',statown=>'scott');

25)、gather_index_stats
作用:用于搜集索引统计
语法:dbms_stats.gather_index_stats(ownname varchar2,indname varchar2,
partname varchar2 default null,estimate_percent number default null,
stattab varchar2 default null,statid varchar2 default null,
statown varchar2 default null,degree number default null,
granularity varchar2 default 'default',no_invalidate boolean default false);
其中ownname指定方案名,indname指定索引名,partname指定分区名,estimate_percent指定要预估的行百分比,
stattab指定用户统计表名,statid指定与统计相关的标识符,statown指定包含STATTAB的方案名,degree指定并行度,
granularity指定要搜集索引的粒度(default,subpartition,partition,global,all),no_invalidate指定是否要使用相关游标无效。
例子:exec dbms_stats.gather_index_stats('scott','pk_emp');

26)、gather_table_stats
作用:用于搜集表统计
语法:dbms_stats.gather_table_stats(ownname varchar2,tabname varchar2,
partname varchar2 default null,estimate_percent number default null,
block_sample boolean default false,method_opt varchar2 default 'FOR ALL COLUMNS SIZE 1',
degree number default null,granularity varchar2 default 'default',cascade boolean default false,
stattab varchar2 default null,statid varchar2 default null,statown varchar2 default null,
no_invalidate boolean default false);
其中block_sample指定是否使用随机采样的块个数取代行百分比,method_opt指定列统计的搜集方法,cascade指定是否要级联搜集索引统计。
例子:exec dbms_stats.gather table_stats('scott','emp');

27)、gather_schema_stats
作用:用于搜集特定方案所有对象的统计
语法:dbms_stats.gather_schema_stats(ownname varchar2,
estimate_percent number default null,block_sample boolean default false,
method_opt varchar2 default 'FOR ALL COLUMNS SIZE 1',
degree number default null,granularity varchar2 default 'default',
cascade boolean default false,stattab varchar2 default null,
statid varchar2 default null,option varchar2 default 'GATHER',
objlist out ObjectTab,statown varchar2 default null,
no_invalidate boolean default false,gather_temp boolean default false);
其中option指定统计搜集选项(GATHER,GATHER AUTO,GATHER STALE,GATHER EMPTY,LIST AUTO,LIST STALE,LIST EMPTY);
objlist返回旧对象或空对象,gather_temp指定是否要搜集临时表统计。
例子:exec dbms_stats.gather_schema_stats('scott');

28)、gather_database_stats
作用:用于搜集数据库所有对象的统计。
语法:dbms_stats.gather_database_stats(
estimate_percnet number default null,block_sample boolean default false,
method_opt varchar2 default 'FOR ALL COLUMNS SIZE 1',
degree number default null,granularity varchar2 default 'default',
cascade boolean default false,stattab varchar2 default null,
statid varchar2 default null,options varchar2 default 'gather',
objlist out ObjectTab,statown varchar2 default null,
gather_sys boolean default false,no_invalidate boolean default false,
gather_temp boolean default false);
其中estimate_percent指定要预估的行百分比,block_sample指定是否使用随机采样的块个数取代行百分比,
method_opt指定列统计的搜集方法,degree指定并行度,
granularity指定要搜集索引的粒度(default,subpartition,partition,global,all),
cascade指定是否要级联搜集索引统计,stattab指定用户统计表名,statid指定与统计相关的标识符,
option指定统计搜集选项(GATHER,GATHER AUTO,GATHER STALE,GATHER EMPTY,LIST AUTO,LIST STALE,LIST EMPTY),
objlist返回旧对象或空对象,statown指定包含STATTAB的方案名,garher_sys指定是否要搜集sys用户对象的统计,
no_invalidate指定是否要使用相关游标无效,gather_temp指定是否要搜集临时表统计。
例子:exec dbms_stats.gather_database_stats.

29)、oather_system_stats
作用:用于搜集系统统计
语法:dbms_stats.gather_system_stats(
gathering_mode varchar2 default 'NOWORKLOAD',
interval integer default null,stattab varchar2 default null,
statid varchar2 default null,statown varchar2 default null);
其中gathering_mode用于指定搜集模式值(noworkload,interval,start|stop),
interval用于指定搜集统计的时间间隔(只适用interval模式)
例子:exec dbms_stats.gather_system_stats.

30)、UNLOCK_TABLE_STATS
作用:专治ORA-38029,解锁对象统计信息。
例子:DBMS_STATS.UNLOCK_TABLE_STATS('MID_SC','DM_OLD_FEATURE_VALUE')

3、综合示例

declare
dist_count number;
density number;
null_count number;
srec dbms_stats.statrec;
avg_col_len number;
numrows number;
numlblks number;
numdist number;
avglblk number;
avgdblk number;
clstfct number;
indlevel number;
avgrlen numer;
begin
--get_column_stats
dbms_stats.get_column_stats('scott','emp','job',distcnt=>dist_count,density=>density,nullcnt=>null_count,srec=>srec,avgclen=>avg_col_len);
dbms_output.put_line('不同列值个数'||dist_count);
dbms_output.put_line('列平均长度'||avg_col_len);
--get_index_stats
dbmns_stats.get_index_stats('scott','PK_EMP',numrows=>numrows,numlblks=>numlblks,
numdist=>numdist,avglblk=>avglblk,avgdblk=>avgdblk,clstfct=>clstfct,indlevel=>indlevel);
dbms_output.put_line('叶块个数'||numlblks);
dbms_output.put_line('索引层次'||indlevel);
--get_table_stats
dbms_stats.get_table_stats('scott','emp',numrows=>numrows,numlblks=>numlblks,avgrlen=>avgrlen);
dbms_output.put_line('表的总计行数'||numrows);
dbms_output.put_line('表所占有的块个数'||numlblks);
dbms_output.put_line('表行的平均水平'||avgrlen);
end;

二十、dbms_stats(用于搜集,查看,修改数据库对象的优化统计信息)的更多相关文章

  1. SQL Server修改数据库对象所有者(Owner)浅析

    在SQL Server数据库中如何修改数据库对象(表.视图.存储过程..)的所有者(Owner)呢?一般我们可以使用系统提供的系统存储过程sp_changeobjectowner来修改. 我们先看看s ...

  2. dbms_stats包更新、导出、导入、锁定统计信息

    dbms_stats包问世以后,我们可通过一种新的方式来为CBO收集统计数据.目前,已经不再推荐使用老式的Analyze分析表和dbms_utility方法来生成CBO统计数据.dbms_stats能 ...

  3. 14.6.11 Configuring Optimizer Statistics for InnoDB 配置优化统计信息用于InnoDB

    14.6.11 Configuring Optimizer Statistics for InnoDB 配置优化统计信息用于InnoDB 14.6.11.1 Configuring Persisten ...

  4. Python学习(二十五)—— Python连接MySql数据库

    转载自http://www.cnblogs.com/liwenzhou/p/8032238.html 一.Python3连接MySQL PyMySQL 是在 Python3.x 版本中用于连接 MyS ...

  5. 二十六、Nodejs 操作 MongoDb 数据库

    一. 在 Nodejs 中使用 Mongodb 前面的课程我们讲了用命令操作 MongoDB,这里我们看下如何用 nodejs 来操作数据库需要引包: npm install mongodb --sa ...

  6. Spring Boot教程(二十九)使用JdbcTemplate操作数据库

    使用JdbcTemplate操作数据库 Spring的JdbcTemplate是自动配置的,你可以直接使用@Autowired来注入到你自己的bean中来使用. 举例:我们在创建User表,包含属性n ...

  7. Python之路【第十九章】:Django 数据库对象关系映射

    Django ORM基本配置 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去 ...

  8. [Python爬虫] 之二十八:Selenium +phantomjs 利用 pyquery抓取网站排名信息

    一.介绍 本例子用Selenium +phantomjs爬取中文网站总排名(http://top.chinaz.com/all/index.html,http://top.chinaz.com/han ...

  9. javaweb学习总结二十四(servlet经常用到的对象)

    一:ServletConfig对象 1:用来封装数据初始化参数,在服务器web.xml配置文件中可以使用<init-param>标签配置初始化参数. 2:实例演示 web.xml文件中配置 ...

随机推荐

  1. mysql 及练习题

    if() 函数的用法 IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false, mysql,'女','男') as sex fr ...

  2. maven 介绍(二)

    本文内容主要摘自:http://www.konghao.org/index 内部视频 三.仓库 仓库:本地仓库:远程仓库:私有仓库(nexus) 1. nexus 的安装: 1). 下载并且解压缩 2 ...

  3. win32api win32gui win32con 窗口句柄 发送消息 常用方法

    Pywin32是一个Python库,为python提供访问Windows API的扩展,提供了齐全的windows常量.接口.线程以及COM机制等等. 1.通过类名和标题查找窗口句柄,并获得窗口位置和 ...

  4. java中hashSet原理

    转自: http://blog.csdn.net/guoweimelon/article/details/50804799 HashSet是JavaMap类型的集合类中最常使用的,本文基于Java1. ...

  5. U盘中了磁碟机病毒怎么办

    问题: U盘在中毒了的电脑上使用后,里面的文件夹均消失了,这是因为里面的文件夹属性被改为隐藏属性.通过查看显示隐藏文件夹发现,所有隐藏了的文件夹的隐藏属性被锁定,无法通过鼠标右键查看文件夹属性的方法改 ...

  6. Hive中排序和聚集

    //五种子句是有严格顺序的: where → group by → having → order by → limit ; //distinct关键字返回唯一不同的值(返回age和id均不相同的记录) ...

  7. [Deep Learning] 神经网络基础【转】

    本文转载自:http://www.cnblogs.com/maybe2030/p/5597716.html 阅读目录 1. 神经元模型 2. 感知机和神经网络 3. 误差逆传播算法 4. 常见的神经网 ...

  8. Quick Launcher FAQ

    Q: Which category can be previewed and selected in Finder? A: All the categories can be selected in ...

  9. uboot向linux传递输出任何log信息的方法

    答案:在bootargs中加入loglevel=8即可(在进入linux的过程中会输出任何log信息)

  10. Secure a Web API with Individual Accounts and Local Login in ASP.NET Web API 2.2

    https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/individual-accounts-in-web-api Ind ...