关于dbms_stats对系统统计信息的管理

oracle 收集 统计信息主要方法是 analyze命令和dbms_stats系统包。
--analyze命令已经过时
– 无法提供灵活的分析选项
– 无法提供并行的分析
– 无法对分析数据进行管理
--DBMS_STATS
– 专门为CBO提供信息来源
– 可以进行数据分析的多种组合
– 可以对分区进行分析
– 可以进行分析数据管理
• 备份,恢复,删除,设置....
不能收集行迁移,行迁移需要使用analyze
analyze table productuser.supplymessage validate structure cascade;
--11g 新增功能
1,Oracle11g的一个默认设置,
2,user_tab_modification跟踪表的修改
3,当分析对象的数据修改超过10%时,Oracle会重新分析。,
4,定时任务GATHER_STATS_JOB负责重新定时收集过旧数据的信息。
--分析scheme
Exec dbms_stats.gather_schema_stats( 
ownname => 'scott', 
options => 'GATHER AUTO', 
estimate_percent => dbms_stats.auto_sample_size, 
method_opt => 'for all indexed columns ', 
degree => 6 ) 
--分析表
begin
   dbms_stats.gather_table_stats(ownname => 'productuser',tabname => 'work_list',estimate_percent => 10,method_opt=> 'for all indexed columns') ; 
end;
--分析索引
begin
   dbms_stats.gather_index_stats(ownname => 'productuser',indname => 'xxx',estimate_percent => '10',degree => '4') ;
end;
--锁定表的统计信息
begin
dbms_stats.lock_table_stats(ownname => 'productuser',tabname =>'SJ_PRODUCT');
END;
--解除锁定
begin
dbms_stats.unlock_table_stats(ownname => 'productuser',tabname =>'SJ_PRODUCT');
END;
--查询表是否锁定统计信息,查询 user_tab_statistics
select * from user_tab_statistics a where a.STATTYPE_LOCKED is not null;
--STATTYPE_LOCKED
--如何使用dbms_stats分析统计信息?
--创建统计信息历史保留表 
begin
  dbms_stats.create_stat_table(ownname => 'productuser',stattab => 'stat_tableofproduct') ; 
end;
--导出整个scheme的统计信息 
begin
   dbms_stats.export_schema_stats(ownname => 'productuser',stattab => 'stat_tableofproduct') ; 
end;
--删除表的统计信息
begin
  dbms_stats.delete_table_stats(ownname => 'productuser',tabname => 'product') ;
end;
select * from user_tables where table_name='PRODUCT'
--导入表的历史统计信息
begin
   dbms_stats.import_table_stats(ownname => 'productuser',tabname => 'product',stattab => 'stat_tableofproduct') ; 
end;
--如果进行分析后,大部分表的执行计划都走错,需要导回整个scheme的统计信息
begin
   dbms_stats.import_schema_stats(ownname => 'productuser',stattab => 'stat_tableofproduct');
end;
--导入索引的统计信息
begin
   dbms_stats.import_index_stats(ownname => 'productuser',indname => 'xxx',stattab => 'stat_tableofproduct') 
end;
还有其他使用较少的过程如下:
删除数据库统计信息:delete_database_stats
删除用户方案统计信息:delete_schema_stats
删除表统计信息:delete_table_stats
删除索引统计信息:delete_index_stats
删除列统计信息:delete_column_stats 
设置表统计信息:set_table_stats
设置索引统计信息:set_index_stats
设置列统计信息:set_column_stats 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23073818/viewspace-756031/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23073818/viewspace-756031/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值