如何改变字段的统计信息

简介: 关键字:DBA_TAB_COL_STATISTICS DBMS_STATS set_column_stats 前几天优化一个sql语句,语句很长,里面有一段where条件status =1 or status is null,单独执行条件status=1 很快完成,但是单独使用status is null条件,执行计划就发生了变化,仔细询问,status的取值范围很小,仅仅0,1,2,null,我修改了回话的optimizer_index_cost_adj 参数,发现可以改变执行计划。

关键字:DBA_TAB_COL_STATISTICS DBMS_STATS set_column_stats

前几天优化一个sql语句,语句很长,里面有一段where条件status =1 or status is null,单独执行条件status=1 很快完成,但是单独使用status is null条件,执行计划就发生了变化,仔细询问,status的取值范围很小,仅仅0,1,2,null,我修改了回话的optimizer_index_cost_adj 参数,发现可以改变执行计划。适当的加大表分析以及直方图分析的取样数据,并不能使执行计划变好。


于是查询TAB_COL_STATISTICS,发现相关字段的NUM_NULLS很大,推测把这个数值修改小一些,就可以改变执行计划。查询DBMS_STATS,确定过程set_column_stats的参数:

-- Set column-related information
--
-- Input arguments:
-- ownname - The name of the schema
-- tabname - The name of the table to which this column belongs
-- colname - The name of the column
-- partname - The name of the table partition in which to store
-- the statistics. If the table is partitioned and partname
-- is null, the statistics will be stored at the global table
-- level.
-- stattab - The user stat table identifier describing where
-- to store the statistics. If stattab is null, the statistics
-- will be stored directly in the dictionary.
-- statid - The (optional) identifier to associate with these statistics
-- within stattab (Only pertinent if stattab is not NULL).
-- distcnt - The number of distinct values
-- density - The column density. If this value is null and distcnt is
-- not null, density will be derived from distcnt.
-- nullcnt - The number of nulls
-- srec - StatRec structure filled in by a call to prepare_column_values
-- or get_column_stats.
-- avgclen - The average length for the column (in bytes)
-- flags - For internal Oracle use (should be left as null)
-- statown - The schema containing stattab (if different then ownname)


EXECUTE SYS.DBMS_STATS.set_column_stats(OWNNAME=>user, tabname=>'XXX',colname=>'STATUS',nullcnt =>200,distcnt =>100);


目录
相关文章
|
7月前
|
数据处理
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
63 0
|
3月前
|
Apache
判定数据中是否包含某一属性的方法
判定数据中是否包含某一属性的方法
分页最好的作用是做好统计,可以用来基本条件列表的统计,可以用来统计多平台,使之呈现列表,预算统计,以及必要的技术,项目名称,常用链接
分页最好的作用是做好统计,可以用来基本条件列表的统计,可以用来统计多平台,使之呈现列表,预算统计,以及必要的技术,项目名称,常用链接
分组分类的查询与保存
分组分类的查询与保存
160 0
分组分类的查询与保存
|
Oracle 关系型数据库
10G自动收集统计信息修改
10G自动收集统计信息修改
116 0
10G自动收集统计信息修改
|
SQL 算法 测试技术
Guid算法与标识列(自动增长字段)在表中的应用
Guid算法与标识列(自动增长字段)在表中的应用
181 0
Guid算法与标识列(自动增长字段)在表中的应用
Excel 技术篇-跨页签统计某一区域下符合条件值的数量方法,COUNTIF函数、数量统计公式的用法实例演示
Excel 技术篇-跨页签统计某一区域下符合条件值的数量方法,COUNTIF函数、数量统计公式的用法实例演示
385 0
Excel 技术篇-跨页签统计某一区域下符合条件值的数量方法,COUNTIF函数、数量统计公式的用法实例演示
|
SQL Go 索引