首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【DB笔试面试630】在Oracle中,怎样收集统计信息?怎样收集分区统计信息

♣ 题目部分 在Oracle中,怎样收集统计信息?怎样收集分区统计信息?...♣ 答案部分 主要采用DBMS_STATS.GATHER_TABLE_STATS包进行统计信息收集,如下所示: DBMS_STATS.GATHER_TABLE_STATS(USER,'TB_NAME...=>'PARTITION',CASCADE=>TRUE);--针对分区的单个分区进行收集统计信息 除此之外,还有一些其它的用法,如下所示: l EXEC DBMS_STATS.GATHER_DATABASE_STATS...();--收集当前数据库下所有用户的统计信息 l EXEC DBMS_STATS.GATHER_SCHEMA_STATS(USER);--收集用户下所有对象的统计信息 当系统的分区数据量很大时,如果每次都收集全部的分区必然会导致统计信息收集非常慢...','TRUE');--只收集数据变动的分区 SELECT DBMS_STATS.GET_PREFS('INCREMENTAL',NULL,'TABLE_NAME') FROM DUAL;--查看分区

95130
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL统计信息相关介绍

以前给大家介绍过MySQL中的统计信息,相信大家也都了解了。那么统计信息是存放在哪里呢?我们怎么去查看?...在MySQL中提供了两个表记录统计信息的相关内容,分别是 innodb_table_stats与innodb_index_stats。下面就这两个的内容,与大家进行一些分享。...重要的列: last_update 就是最后一次收集统计信息的时间 clustered_index_size 聚集索引的page数量 sum_of_other_index_sizes 非聚集索引的page...innodb_table_stats与innodb_index_stats两张我们可以了解统计信息、计算索引的大小、索引的选择性如何,也可以做到监控中。...通过5.7的MySQL中添加了Sys Schema也就是让大家不用通过去查看代码的方式去排查各种问题、故障处理等,可见对系统的学习在日后会更重要。

2.1K80

Oracle并发(CONCURREMT)收集统计信息

编辑手记:从11.2开始,可以通过CONCURRENT参数,启用或分区的并行扫描,加快统计信息收集速度。 作者简介:何剑敏 Oracle ACS华南区售后团队,首席技术工程师。...对于大统计信息收集,我们可以加degree参数,使得扫描大的时候,进行并行扫描,加快扫描速度。 但是这在收集的时候,还是进行一个一个的扫描。并没有并发的扫描各个。...在oracle 11.2.0.2之后,就有了一个参数,可以并发扫描(或者分区),这就是CONCURRENT参数。 可以通过以下语句看到你的数据库是否启用了CONCURRENT收集统计信息。...用concurrent收集统计信息,需要收集统计信息用户具有以下权限: CREATE JOB MANAGE SCHEDULER MANAGE ANY QUEUE 即使是该用户具有了dba角色,也还是需要显式授权上述权限...EBS系统应用是采用自己的并发管理器(FND_STATS)来收集统计信息,而收集统计信息用户往往是没有显式授权CREATE JOB、MANAGE SCHEDULER、MANAGE ANY QUEUE的。

1.6K50

统计信息记录|全方位认识 mysql 系统库

在上一期《数据库对象信息记录|全方位认识 mysql 系统库》中,我们详细介绍了mysql系统库中的元数据记录,本期我们将为大家带来系列第四篇《统计信息记录|全方位认识 mysql 系统库》,下面请跟随我们一起开始...持久统计信息存储在mysql.innodb_table_stats和mysql.innodb_index_stats中,前者存放结构、数据行相关的统计信息,后者存放索引值相关的统计信息。...但要注意,这里说的是会触发重新计算索引统计信息,而不是mysql.innodb_table_stats中的及其数据相关的统计信息,要想在添加索引时数据相关的统计信息同时更新到mysql.innodb_table_stats...统计信息是否精确可以通过SELECT DISTINCT(index_name)返回的值与mysql.innodb_index_stats持久统计信息中提供的估计值来进行对比检查。...统计信息持久化依赖于mysql数据库下的innodb_table_stats和innodb_index_stats,这些在安装,升级和源代码构建过程中会自动设置。

99030

收集统计信息导致索引被监控

然而,最近在Oracle 10.2.0.3中发现收集统计信息时导致索引也被监控,而不是用于sql查询引发的索引监控。如此这般,索引监控岂不是鸡肋?...1、基于Oracle 10g 收集统计信息索引被监控情形 scott@CNMMBO> select * from v$version where rownum<2; BANNER ---------...--再次收集统计信息 scott@CNMMBO> exec dbms_stats.gather_table_stats('SCOTT','T',cascade=>true); PL/SQL procedure...YES YES 03/22/2013 20:37:57 SQL> alter index t_pk nomonitoring usage; 3、小结   a、对于索引监控,在Oracle 10g中当收集统计信息时...,如果当前索引的统计信息也被收集则导致该索引被监控   b、注意索引能否被收集到还依赖于estimate_percent以及method_opt等收集时的相关参数   c、由于上述情形存在因此索引监控在

34920

MySQL统计信息简介

查询优化器决定SQL如何执行,依赖于数据库的统计信息,下面我们介绍MySQL 5.7中innodb统计信息的相关内容。 MySQL统计信息的存储分为两种,非持久化和持久化统计信息。...client登录4 第一次被打开5 距上一次更新统计信息1/16的数据被修改 非持久化统计信息的缺点显而易见,数据库重启后如果大量表开始更新统计信息,会对实例造成很大影响,所以目前都会使用持久化统计信息...二、持久化统计信息 5.6.6开始,MySQL默认使用了持久化统计信息,即INNODB_STATS_PERSISTENT=ON,持久化统计信息保存在mysql.innodb_table_stats和mysql.innodb_index_stats...持久化统计信息在以下情况会被自动更新: 1 INNODB_STATS_AUTO_RECALC=ON 情况下,中10%的数据被修改2 增加新的索引 innodb_table_stats是统计信息,...查看t1统计信息,需主要关注stat_name和stat_value字段 ?

2.5K20

Oracle的自动统计信息收集直方图的信息

在oracle9i中,默认的统计信息收集是不收集直方图信息的,也就是说默认的MOTHOD_OPT模式为FOR ALL COLUMNS SIZE 1 在10g开始,dbms_stats包中默认的METHOD_OPT...DBMS_STATS.GET_PARAM('METHOD_OPT') ——————————————————————– FOR ALL COLUMNS SIZE AUTO 这就说明,从10g开始,统计信息收集中的直方图部分...,收集与否是有oracle自从判断,从实际的使用来看,oracle的智能判断并不是100%正确, oracle往往会大量的收集一些并不是必须的直方图信息,而有些直方图信息又会对查询造成不必要的影响 由于我们简单的对直方图进行删除后...,oracle的自动统计信息又会重新收集,所以我们需要采取一些必要的方法,来规避这个问题 10g中: 解决方案 删除统计信息 手工收集标的统计信息,不收集直方图 lock统计信息 创建JOB手工收集统计信息...11g中 在11g中,oracle对dbms_stats包添加了新功能,提供给我们进行修改,可以使用dbms_stats.set_table_prefs包 删除直方图信息: dbms_stats.delete_column_stats

58350

MySQL 统计信息简介

查询优化器决定SQL如何执行,依赖于数据库的统计信息,下面我们介绍MySQL 5.7中innodb统计信息的相关内容。 MySQL统计信息的存储分为两种,非持久化和持久化统计信息。...client登录4 第一次被打开5 距上一次更新统计信息1/16的数据被修改 非持久化统计信息的缺点显而易见,数据库重启后如果大量表开始更新统计信息,会对实例造成很大影响,所以目前都会使用持久化统计信息...二、持久化统计信息 5.6.6开始,MySQL默认使用了持久化统计信息,即INNODB_STATS_PERSISTENT=ON,持久化统计信息保存在mysql.innodb_table_stats和mysql.innodb_index_stats...持久化统计信息在以下情况会被自动更新: 1 INNODB_STATS_AUTO_RECALC=ON 情况下,中10%的数据被修改2 增加新的索引 innodb_table_stats是统计信息,...查看t1统计信息,需主要关注stat_name和stat_value字段 ?

2.1K10

知识&案例:并行和并发统计信息收集

概述 随着应用数据的增多和量的增加,为了增加统计信息收集的效率,Oracle推出了并行和并发收集统计信息的方法。...并行收集统计信息(PARALLEL ) 当某个的Size特别大时,可以通过并行的Slave进程共同工作来加快统计信息收集的效率。...并行 VS 并发 有时候可能对并行和 并发统计信息收集的概念有些混淆,下面我们通过一张来总结对比一下并行和并发统计信息收集: ?...并发和并行执行统计信息收集组合 为了提高效率,可以使并发和并行执行统计信息收集同时有效,这种组合使用对于非常大的和分区非常有效。...如何限定仅对一部分进行并发统计信息收集? 在过去的咨询案件中,确实有些客户希望仅对某Schema的一部分进行并发统计信息收集

94540

统计信息自动收集任务失效原因排查

环境:Oracle 11.2.0.3 RAC 问题:统计信息自动收集任务失效原因排查 1.查看自动任务的状态 查看自动任务的状态,确认是enabled状态: SQL> select client_name...advisor ENABLED Elapsed: 00:01:03.88 一般来说,这样的结果,就意味着统计信息自动收集是打开的...另外,看下统计信息自动收集任务的WINDOW_GROUP以及对应的MEMBER_NAME: SQL> select client_name,window_group 2 from DBA_AUTOTASK_CLIENT...Elapsed: 00:00:00.04 可以看到,正常应该是一周7天都有的,但是由于THURSDAY_WINDOW 的窗口ACTIVE是TRUE,导致2012年9月27号(周四)统计信息收集失败。...这样就找到了问题,另外因为离统计信息信息自动收集关闭已有多年,目前生产环境运行平稳,所以最终决定保守处理,即:先将生产环境的自动任务都关闭,等在备库测试验证后再考虑生产环境开启自动任务。

73620

自动统计信息收集(Automatic Optimizer Statistics Collection)

程序进行统计信息收集。...2.统计信息收集的对象为满足以下条件的: 1)统计信息不锁定 2)没有统计信息 或者 上一次统计信息收集后,中10%的行被更新。...3.统计信息收集的顺序如下: 1)没有统计信息的对象 2)上一次统计信息收集后变更量较多的对象 3)1)2)相同的,先收集大小比较小的对象 自动统计信息收集的动作确认 自动统计信息收集的相关动作可以通过以下视图进行查看...1.通常情况下,gather_database_stats_job_proc程序执行时,系统字典也作为统计信息收集对象。...2.对于数据变化很大的,建议通过锁定统计信息等方法,来避免作为自动统计信息收集的对象。 另外,针对一时统计信息收集后也不会产生有效的信息,所以建议针对一时采取动态统计的方法。

1.2K10

Mysql索引原理(十六)」维护索引和-更新索引统计信息

MySQL优化器使用的是基于成本的模型,而衡量成本的主要指标就是一个查询需要扫描多少行。如果没有统计信息,或者统计信息不准确,优化器就很有可能做出错误的决定。...在 MySQL5.0和更新的版本中,还可以通过 FORMATION_SCHEMA. STATISTICS很方便地查询到这些信息。...需要注意的是,如果服务器上的库非常多,则从这里获取元数据的速度可能会非常慢,而且会给 MySQL带来额外的压力。 InnodB的统计信息值得深入研究。...InnoDB在打开某些INF0RMATION_SCHEMA,或者使用 SHOW TABLE STATUS和SHOW INDEX,抑或在MySQL客户端开启自动补全功能的时候都会触发索引统计信息的更新。...如果想要更稳定的执行计划,并在系统重启后更快地生成这些统计信息,那么可以使用系统来持久化这些索引统计信息。甚至还可以在不同的机器间迁移索引统计信息,这样新环境启动时就无须再收集这些数据。

1.9K40

MySQL统计信息更新小结

另外,优化器还会结合是否使用临时、是否排序等因素进行综合判断。针对扫描行数,实际上MySQL在真正开始执行语句之前,并不能精确地知道满足这个条件的记录有多少条。它是通过统计信息来估算记录数的。...这个统计信息就是索引的“区分度”。一个索引上不同的值越多,这个索引的区分度就越好。MySQL使用“采样统计”的方式来维护统计信息。...MySQL 统计信息更新默认情况下innodb_stats_persistent=ON,优化器的统计信息会持久化保存在mysql.innodb_table_stats和mysql.innodb_index_stats...以下几种情况,不管innodb_stats_auto_recalc是ON还是OFF,都会更新innodb_index_stats的索引统计信息增加索引增加或者删除字段innodb_table_stats...和innodb_index_stats这2个统计数据,其实也可以通过手动方式去修改它(直接update数据),修改后,需要执行一下FLUSH TABLE命令更新对应的统计信息让它加载生效.

2.3K20

truncate,会将统计信息清除么?

看见微信群有位朋友问: truncate,会将统计信息清除么? 有些朋友回复, 数据字典信息都没有了,统计信息就清除了,所以是没有统计信息的。...truncate完统计信息还是在的,跟你10g还是11g没有关系,关键在你之前有没有收集统计信息,你之前都没有收集统计信息,last analyzed本来就是空的。...,除非执行了统计信息采集,truncate table和和索引的统计信息,没有任何关联。...另一方面,truncate会影响是否可以被自动采集统计信息的任务触发,mon_mods_all$会记录自上次自动统计信息收集作业完成之后,对所有目标的insert、delete和update操作所影响的记录数...执行truncate,统计信息不会被删除,除非执行了统计信息采集,truncate table和和索引的统计信息,没有任何关联,对象是否有统计信息记录,取决于是否采集过统计信息,包括手工和自动两种方法

1.2K20

Oracle 12c数据库优化器统计信息收集的最佳实践(三)|何时不需要收集统计信息

如果你依赖于自动收集统计信息job来维护这类统计信息,那么统计信息会经常显示此为空。因为晚上此是空的,而收集统计信息的job也正是晚上才开始执行。...然而,在白天的过程中,这个可能有成百上千条记录。 在这种情况下,最好在被填充时收集一组有的代表性的统计信息,并锁住。锁住统计信息会阻止自动收集统计信息覆盖他们。...另外,你可以依赖于动态采样来收集这些统计信息。优化器在优化一个语句之前编译sql语句的时候会使用动态采样来收集的基本统计信息。...在这种情况下收集统计信息的成本大于好处,因为统计信息只被使用一次。反倒是动态采样应该用于这些场景。建议你锁住这些中间上的统计信息以防止自动统计信息收集任务再次对他们收集统计信息。...数据字典统计信息 数据字典上的统计信息是通过运行在夜间维护窗口上的自动统计信息收集任务来维护的。

1.1K50

关于Oracle开启自动收集统计信息的SPA测试

主题:关于Oracle开启自动收集统计信息的SPA测试 环境:Oracle RAC 11.2.0.4(Primary + Standby) 需求:生产Primary库由于历史原因关闭了自动统计信息收集...,目前客户需求是想要重新开启统计信息的自动收集,虽然一般来说,有了更准确的统计信息,SQL会有更好的执行计划,但由于生产环境数据复杂,实际上还是需要评估哪些SQL会因为重新开启自动统计信息收集性能反而会下降...1.构造测试环境 检查自动统计信息的开启状态: select client_name,status from dba_autotask_client; 确认自动统计信息收集是关闭的,对于“auto...: --光闭自动统计信息收集,(慎用,除非有其他手工收集统计信息的完整方案,否则不建议关闭) BEGIN DBMS_AUTO_TASK_ADMIN.disable( client_name...这里首先需要开启统计信息自动收集,并可以把自动收集的窗口时间提前到现在,减少等待的时间。

1.1K20
领券