Oracle快速收集全库统计信息

环境:Oracle 11.2.0.4

采用并行的方式,快速收集全库统计信息,多用于跨版本升级之后,对全库的统计信息重新进行快速收集:

--开启计时
set timing on

--设置并行收集
exec dbms_stats.set_global_prefs(‘CONCURRENT‘,‘TRUE‘);
 
--开始收集全库统计信息
begin
dbms_stats.gather_database_stats(
ESTIMATE_PERCENT=>DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt => ‘for all indexed columns‘, cascade=>true, degree=>120);
end;
/
 
--关闭并行收集
exec dbms_stats.set_global_prefs(‘CONCURRENT‘,‘FALSE‘);

注意degree的值并不是设置越高就越快,同时要根据实际CPU具体情况来设置。

本文来自同事的经验分享,这里主要用到dbms_stats包的set_global_prefs和gather_database_stats过程。详见官档描述:

原文地址:https://www.cnblogs.com/jyzhao/p/10047866.html

时间: 2024-11-15 17:39:46

Oracle快速收集全库统计信息的相关文章

Oracle里收集与查看统计信息的方法

Oracle数据库里的统计信息是这样的一组数据:它存储在数据字典里,且从多个维度描述了Oracle数据库里对象的详细信息.CBO会利用这些统计信息来计算目标SQL各种可能的.不同的执行路径的成本,并从中选择一条成本值最小的执行路径来作为目标SQL的执行计划. Oracle数据库里的统计信息可以分为如下6种类型: 表的统计信息 索引的统计信息 列的统计信息 系统统计信息 数据字典统计信息 内部对象统计信息 表的统计信息用于描述Oracle数据库里表的详细信息,它包含了一些典型的维度,如记录数.表块

oracle 12c 关闭统计信息收集和启用统计信息收集

oracle 12c 关闭统计信息收集和启用统计信息收集 --关闭统计信息 col client_name for a60 select client_name,status from DBA_AUTOTASK_CLIENT; CLIENT_NAME STATUS ------------------------------------------------------------ ---------------- auto optimizer stats collection ENABLED

数据库性能优化、统计信息与对象统计信息概述收集、扩展统计信息、dbms_stats.get_prefs

数据库性能优化 相关书籍: 1.基于成本的Oracle优化法则 2.Oracle性能诊断艺术 3.基于Oracle的SQL优化 ----------------------------------------------------------------------------------------- 两种优化器: CBO  cost-base optimizer 基于cost 更大适应性/灵活性/10g开始 RBO  rule-base optimizer 基于规则 制定了15条/10g以

Oracle常规备份与恢复全库模式、用户模式、表模式对比

三种模式的命令语句及关键不同点(红色字体标记)如下所示: 1.全库模式导出/导入: exp 'user/[email protected]/ORACLE_SID'file='/data/backup/datafile1.dmp' log='/data/backup/datafile1_exp.log' full=y statistics=none imp 'user/[email protected]/ORACLE_SID'file='/data/backup/datafile1.dmp' lo

Oracle 和 SQLSERVER 重新获取统计信息的方法

1. Oracle 重新获取统计信息的命令 exec dbms_stats.gather_schema_stats(ownname =>'LCoe739999',options => 'GATHER',estimate_percent => dbms_stats.auto_sample_size, method_opt => 'for all columns size repeat', degree => 4) # 需要修改 ownername options 指定 以及 d

ORACLE索引失效,更新统计信息

有时候建立索引的时候不走索引,排除了字段数据问题和sql写法问题之外,应该是统计信息有问题,得重新收集. 一:解锁统计信息 为了稳定执行计划,一般统计信息都会被锁住的,在更新统计信息的时候得先解锁. ①按用户schema解锁: EXEC DBMS_STATS.UNLOCK_schema_STATS('user_name'); ②按表模式解锁:先查出被锁定的表 select table_name from user_tab_statistics where stattype_locked is n

【Oracle】导出全库备份,导入指定的schema并替换现有的表

需求:开发环境,每天晚上做了全库导出备份.由于误操作,现在要恢复指定的schema下的所有表,操作思路如下: 1.全库导出备份的语句 expdp system/oracle full=y dumpfile=arp103.$version.dmp logfile=arp103.$version.log directory=dmppath compression=ALL compression=ALL 是压缩备份的意思,节省空间. 2.导入备份语句: impdp system/oracle dump

Oracle快速收集AWR的方案

记一种方便的awr收集方法,该脚本可以按小时收集目标时段的awr 素材:awr_generate.sql (1)将awr_generate.sql置于数据库服务器本地路径F:\perf\awr下 (2)sqlplus连接数据库 C:\Users\Administrator>sqlplus / as sysdba (3)调用SQL脚本,时段参数等 SQL> @F:\perf\awr\awr_generate.sql Current Instance~~~~~~~~~~~~~~~~ DB Id D

Oracle 10g收集数据库统计信息

1.需求概述 2.实施步骤 3.回退方案 1.需求概述 某数据库由于整体统计信息不准确,多次出现部分业务SQL选错执行计划,从而导致性能下降影响到最终用户体验,目前通过SQL_PROFILE绑定执行计划临时解决,但此方法不够灵活,后续维护工作量也会增加. Oracle优化器(CBO)依赖数据库统计信息来计算目标SQL各种可能的执行路径的成本,并从中选择一条成本值最小的执行路径来作为目标SQL的执行计划.如果统计信息不准确甚至是错误,会导致优化器选择错误SQL执行计划的概率大大增加. 目前计划对该