Oracle 11g快速收集全库统计信息】的更多相关文章

环境: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_SI…
重建全库索引: exec sp_msforeachtable 'DBCC DBREINDEX(''?'')' 更新全库统计信息: --更新全部统计信息 exec sp_updatestats 实例反馈: 在实际项目中,出现过导入数据的存储过程执行需要大概46分钟,而通过更新全库统计信息之后,只需要6分钟,通过简单的处理,快速优化提升了SQL Server的性能. 扩展: 博主也编写了更为灵活的根据索引碎片自动重建部分索引碎片大的索引,基于尊重本作者劳动成果避免被抄袭又不注明出处的不道德.丑恶现象…
对象统计信息描写叙述数据是如何在数据库中存储的,查询优化器使用这些统计信息来做出正确的决定.Oracle中有三种类型的对象统计信息:表统计.列统计和索引统计.而在每种类型中,有细分为:表或索引级别的统计.分区级别统计和子分区级别的统计,后面两种仅仅有在对象被分区和具有子分区的情况下才可用. 统计信息相关视图 表统计信息 表/索引级别的统计 user_tab_statistics user_tables 分区级别的统计 user_tab_statistics user_tab_partitions…
在oracle中查找所有的表的索引的命令 select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name 在oracle中实现索引的批量重建的sql命令,其中TableSpace为索引表空间 Declare L_Sql Varchar2(32767) := ''; Begin For indexRow I…
早期Oracle查询优化器的开销计算是基于运行SQL语句所须要的物理读,这种方法被叫做I/O开销模式(I/O cost model),这种方法的主要缺点是觉得单块读和多块读开销相当.在Oracle 8i中,初始化參数optimizer_index_caching和optimizer_index_cost_adj攻克了这个问题,但參数的默认值仅适用于报告系统和数据仓库.直到Oracle 9i,ORacle引入了一种新的CPU开销模式(CPU cost model),消除了这个缺陷,但必须提供数据库…
这个需求比较冷门,但对于在某些特定的情况下,还是会有这样的需要的.好在Oracle实现还比较方便,用存储过程则轻松实现. 查询字符串: create or replace procedure search_string(pString in varchar) as cursor all_tab_cursor is select a.owner, a.table_name, b.column_name from dba_tables a, dba_tab_columns b, dba_object…
1.需求概述 2.实施步骤 3.回退方案 1.需求概述 某数据库由于整体统计信息不准确,多次出现部分业务SQL选错执行计划,从而导致性能下降影响到最终用户体验,目前通过SQL_PROFILE绑定执行计划临时解决,但此方法不够灵活,后续维护工作量也会增加. Oracle优化器(CBO)依赖数据库统计信息来计算目标SQL各种可能的执行路径的成本,并从中选择一条成本值最小的执行路径来作为目标SQL的执行计划.如果统计信息不准确甚至是错误,会导致优化器选择错误SQL执行计划的概率大大增加. 目前计划对该…
一.什么是统计信息 oracle数据库里的统计信息是如下的一组数据:他们存储在数据字典里,且从多个维度描述了oracle数据库数据对象的详细信息. oracle数据库里的统计信息主要分为以下6种情况: (1)表的统计信息. (2)列的统计信息. (3)索引的统计信息. (4)系统统计信息. (5)数据字典统计信息. (6)内部对象统计信息. 二.oracle收集和查看统计信息的方法 oracle数据库收集统计信息一般有以下2种方法: (1)analyze命令. (2)dbms_stats包. 针…
在11g之前,当表的数据量改动超过总数据量的10%,就会晚上自己主动收集统计信息.怎样推断10%.之前的帖子有研究过:oracle自己主动统计信息的收集原理及实验.这个STALE_PERCENT=10%,是无法改动的,假设表很大.10%是许多的数据,很有可能造成统计信息不准确. 在11g之后,STALE_PERCENT=10%是能够改动的,分为全局(DBMS_STATS.SET_GLOBAL_PREFS )和表级别(DBMS_STATS.SET_TABLE_PREFS).表级别的设定: 改动为5…
(一)统计信息收集概述 在Oracle 11g中,默认有3个自动任务,分别是:自动统计信息收集.SQL调优顾问.段空间调整顾问,查看方法如下: SQL> SELECT CLIENT_NAME,TASK_NAME,OPERATION_NAME,STATUS FROM dba_autotask_task; CLIENT_NAME TASK_NAME OPERATION_NAME STATUS -------------------------------- ---------------------…