首页
学习
活动
专区
工具
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);--收集用户下所有对象统计信息 当系统分区数据量很大时,如果每次都收集全部分区必然会导致统计信息收集非常慢...INCREMENTAL值 本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

96330

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

编辑手记:从11.2开始,可以通过CONCURRENT参数,启用或分区并行扫描,加快统计信息收集速度。 作者简介:何剑敏 Oracle ACS华南区售后团队,首席技术工程师。...多年从事第一线数据库运维工作,有丰富项目经验、维护经验和调优经验,专注于数据库整体运维。 对于大统计信息收集,我们可以加degree参数,使得扫描大时候,进行并行扫描,加快扫描速度。...但是这在收集时候,还是进行一个一个扫描。并没有并发扫描各个。在oracle 11.2.0.2之后,就有了一个参数,可以并发扫描(或者分区),这就是CONCURRENT参数。...可以通过以下语句看到你数据库是否启用了CONCURRENT收集统计信息。...EBS安装文档中(Doc ID 396009.1),也是说将数据上收集统计信息功能关闭(_optimizer_autostats_job=false) 参考: https://blogs.oracle.com

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

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

59650

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

如果你依赖于自动收集统计信息job来维护这类统计信息,那么统计信息会经常显示此为空。因为晚上此是空,而收集统计信息job也正是晚上才开始执行。...然而,在oracle 12c版本,现在可以实现每个使用全局临时会话拥有自己独立统计信息。...图13:改变默认方式:从全局临时不共享统计信息到共享统计信息 如果你是从11g升级到12c,但数据库应用没有被修改去利用全局临时会话统计信息,你可能需要保持全局临时默认方式与升级之前一致,通过设置...exec dbms_stats.set_global_prefs('autostats_target','oracle') 内部对象统计信息oracle数据库12c开始,内部对象统计信息如果之前没有被收集过...with Oracle Database 12c Release 2 Oracle白皮书:Database 12c Real Application Testing Overview

1.1K50

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

主题:关于Oracle开启自动收集统计信息SPA测试 环境:Oracle RAC 11.2.0.4(Primary + Standby) 需求:生产Primary库由于历史原因关闭了自动统计信息收集...,目前客户需求是想要重新开启统计信息自动收集,虽然一般来说,有了更准确统计信息,SQL会有更好执行计划,但由于生产环境数据复杂,实际上还是需要评估哪些SQL会因为重新开启自动统计信息收集性能反而会下降...: --光闭自动统计信息收集,(慎用,除非有其他手工收集统计信息完整方案,否则不建议关闭) BEGIN DBMS_AUTO_TASK_ADMIN.disable( client_name...这里首先需要开启统计信息自动收集,并可以把自动收集窗口时间提前到现在,减少等待时间。...: Oracle窗口和自动任务 5.4 变更后再次分析性能 测试运行SQL Tuning Set中SQL语句,分析所有语句在收集统计信息之后执行效率: 参考规范: EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK

1.1K20

Oracle 11G统计信息自动收集及调整

Oracle 11G开始,数据库统计信息自动收集被整合到自动维护任务中,满足大多数情形下运行需求。但对于在线商城,交易系统而言,可能需要调整其执行时间或者自行指定收集窗口。...一、缺省统计信息相关状态查看 1、查看自动收集统计信息对应task(也就是program名称)及状态 --当前状态 SQL> select * from v$version...Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production --如下查询表明统计信息收集是位于gather_stats_prog...--统计信息收集时间窗口 --如下查询周一至周五时间为22点,周六日为6点 --此外持续也不相同,周一至周五为4小时,周六日为20个小时...--如下查询,scott统计信息已更新 SQL> select TABLE_NAME,NUM_ROWS,BLOCKS,LAST_ANALYZED from dba_tables where

1.2K00

Oracle 12c数据库优化器统计信息收集最佳实践(二)

在线收集统计信息Oracle Database 12 c中,在线收集统计信息"piggybacks"作为直接路径数据加载操作一部分进行收集, 例如, 像使用CTAS方式创建,以及IAS方式插入数据...见 Oracle 白皮书,《Database 12c Real Application Testing Overview》有关更多详细信息 (请参见21页上参考资料)。...Oracle数据库中所有具有此属性都默认设置为1,为了加快统计信息收集,可以在对大进行收集统计信息时显示指定该参数,或者你可以设置degree为auto_degree;Oracle将根据对象大小自动确定应该用于收集统计信息适当并行服务器进程数量...通过让Oracle充分利用多处理器环境,同时去收集多个和(sub)分区统计信息可以减少收集统计数据所需总体时间。...,那么Oracle将为每个非分区以及分区每个(子)分区创建一个单独统计信息收集作业。

1.5K70

Oracle 12c数据库优化器统计信息收集最佳实践(一)

本文将详细讨论,在Oracle常见场景中何时以及如何收集统计信息,文章大致分如下几个部分: 如何收集统计信息 何时收集统计信息 提高统计信息质量 快速收集统计信息 何时不用收集统计信息 收集其他类型统计信息...如何收集统计信息Oracle中优选方式是统计信息自动收集。...使用这种方式,我们将会指定哪些指定统计信息被默认收集,而不需要在收集统计信息时候调整参数。我们可以自由使用默认参数收集/用户/数据库级别的统计信息,并且确定这些统计信息收集策略已经被使用。...更重要是,我们可以在自动和手动统计信息收集之间自由切换。 自动统计信息收集 oracle数据库需要收集那些缺少或者已经“stale”过期统计信息对象统计信息。...METHOD_OPT METHOD_OPT参数控制柱状图是否在收集过程中被创建。柱状图是oracle数据库中一类特殊类型统计数据,用户提供中列数据分布详细信息

1.4K81

【DB笔试面试645】在Oracle中,当收集统计信息时应该注意哪些问题?

♣ 题目部分 在Oracle中,当收集统计信息时应该注意哪些问题?...⑥ 统计信息收集作业采样比例:对于Oracle 11g及其以上版本收集统计信息采样比例建议采用DBMS_STATS.AUTO_SAMPLE SIZE。...如果是Oracle 10g,那么建议将采样比例初始值设为30%,然后根据目标SQL实际执行情况再做调整。 ⑦ 系统统计信息:如果系统硬件环境发生了变化,那么建议要额外收集一次系统统计信息。...⑧ 内部对象统计信息:在明确诊断出系统已有的性能问题是因为X$内部对象统计信息不准引起,这个时候就应该收集X$内部对象统计信息,其它情形就不要收集了。...21 如果加载数据量比较大,并且是分区,每个分区业务数据呈现是均匀,在Oracle 11g可以考虑采用DBMS_STATS.COPY_TABLE_STATS先把统计信息做个快速设置,然后,再收集该分区统计信息

1.1K30

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

Oracle优化器(CBO)依赖数据库统计信息来计算目标SQL各种可能执行路径成本,并从中选择一条成本值最小执行路径来作为目标SQL执行计划。...如果统计信息不准确甚至是错误,会导致优化器选择错误SQL执行计划概率大大增加。 目前计划对该数据库统计信息进行重新收集,因为生产环境复杂性,不排除重新收集正确统计信息后,整体性能反而下降情况。...故而在收集之前需要对原有的统计信息做好备份,如发现收集后性能反而下降极端情况,也可以快速回退到原有的统计信息。...收集数据库统计信息,需要在业务闲时操作: --开启计时 set timing on --开始收集全库统计信息 begin dbms_stats.gather_database_stats( ESTIMATE_PERCENT...如果数据库是11.2.0.2及以上版本,还可以通过DBMS_STATS.SET_GLOBAL_PREFS设置并发收集进一步提升收集效率,具体可参考: Oracle 11g快速收集全库统计信息 3.回退方案

46210

Oracle统计信息那点事儿

引言 在Oracle11g版本中,统计信息为自动收集功能,在部署安装11g Oracle软件过程中,其中有一个步骤便是提示是否启动这个功能(默认是启用这个功能);且有时候在生产环境中,还会对一些对象做手动统计信息搜集...如果对一次执行SQL时发现涉及对象(、索引等)没有被分析、统计过,那么ORACLE会采用一种叫做动态采样技术,动态收集和索引上一些数据信息。...Oracle统计信息自动搜集策略 接下来讲一讲统计信息收集那点事。统计信息可分为自动收集和手动收集。...对于分区,如果仅仅是一个分区有了较大改动,只需要收集一个分区统计,但是收集整个分区也是必要; 4. 其他。 3....这个功能貌似带来了统计数据采集上便捷,但是Oracle 11g自动收集统计信息时间是22:00--2:00。 这个时间段往往是业务高峰期,给本已紧张系统带来更大负担。

1.6K20

【DB笔试面试644】在Oracle中,如何并发地收集统计信息

♣ 题目部分 在Oracle中,如何并发地收集统计信息? ♣ 答案部分 对于大统计信息收集可以通过DEGREE参数使得扫描大时候进行并行扫描,从而加快扫描速度,缩短了收集统计信息时间。...但是,即使加了DEGREE参数,在收集统计信息时候,还是进行一个一个扫描,并没有并发同时扫描多个。...在Oracle 12c版本上,可以设置以下值: MANUAL:只有当手动收集时,并发有效 AUTOMATIC:只有当自动收集时,并发有效 ALL:当手动/自动收集,并发都有效 OFF:并发无效 可以通过以下视图...,对并发统计信息收集进行监视: DBA_OPTSTAT_OPERATION_TASKS:当前和历史统计信息收集执行任务 DBA_OPTSTAT_OPERATIONS:当前和历史统计信息收集执行操作...& 说明: 有关并发地收集统计信息更多内容可以参考我BLOG:http://blog.itpub.net/26736162/viewspace-2134312/ 本文选自《Oracle程序员面试笔试宝典

55220

Oracle统计信息Pending Statistics

前言 Oracle统计信息相信大家都不陌生,统计信息中有Pending Statistics这个概念。...统计信息准确性对于CBO评估SQL各种可能执行路径Cost非常重要,当统计信息不准时,很可能CBO选择了不佳执行计划,此时需要收集统计信息。...或者当进行SQL优化时,怀疑是统计信息不准导致问题时,需要收集统计信息。...但生产环境下统计信息收集也是有风险,有可能当收集统计信息后执行计划反而变更差,此时就可以利用Pending Statistics。 默认,当收集统计信息后,统计信息会存储到数据字典中。...要点总结 1.使用set_table_prefs过程将publish选项设置为false,收集统计信息和索引统计信息都会被收集为pending statistics,可以查看视图dba_tab_pending_stats

80930

测试Oracle统计信息导出导入

背景:有时我们会希望可以对Oracle统计信息整体进行导出导入。...比如在数据库迁移前后,希望统计信息保持不变;又比如想对统计信息重新进行收集,但是担心重新收集结果反而引发性能问题,想先保存当前统计信息,这样即使重新收集后效果不好还可以导入之前统计信息。...Oracle提供给我们一些方法,比较常用粒度有两种: schema级别统计信息导出导入 通过调用DBMS_STATS.EXPORT_SCHEMA_STATS和DBMS_STATS.IMPORT_SCHEMA_STATS...统计信息存放可以通过DBMS_STATS.CREATE_STAT_TABLE和DBMS_STATS.DROP_STAT_TABLE来进行创建或是删除。...然后在某一张插入数据,重新收集统计信息: SYS@orcl> insert into jingyu.ash_tmp select * from jingyu.ash_tmp; SYS@orcl>

1K30

Oracle批量灌数后自动收集统计信息(Online Statistics Gathering for Bulk Loads)

Online Statistics Gathering for Bulk Loads Oracle12c后,在大批量灌数后,提供了自动收集统计信息方式。...大批量灌数后立即查询是很多数据库痛点,通常都会因为统计信息不准导致计划出问题,下面总结下Oracle解决方法: 什么场景会触发自动收集统计信息?(已验证) create table as。...delete清空,做bulk insert不会收集统计信息,因为有segment,必须是空才行。 分区:遵循上述规则前提下 对父insert只会收集统计信息。...但在实践中,由于疏忽或等维护窗口没有收集统计信息,是生成错误计划主要原因。 “Bulk Loads统计信息收集” 分区 如果插入父,则收集统计信息,不会收集子表。...注意在bulk loads统计信息收集中,Oracle不会收集统计信息。 “Bulk Loads统计信息收集” 限制,下面场景不会自动收集统计信息: 目标对象已经有数据了。

19440

【DB笔试面试629】在Oracle中,自动收集统计信息机制有哪些?10g和11g在自动收集统计信息方面有哪些区别?

♣ 题目部分 在Oracle中,自动收集统计信息机制有哪些?10g和11g在自动收集统计信息方面有哪些区别?...在Oracle 10g之前并没有自动收集统计信息机制,从Oracle 10g开始引入了自动收集统计信息功能,这个功能在Oracle 10g中被称为自动统计信息收集(Automatic Statistics...Oracle初始化参数STATISTICS_LEVEL控制收集统计信息级别,有三个参数值: l BASIC:收集基本统计信息 l TYPICAL:收集大部分统计信息(数据库默认设置) l ALL...:收集全部统计信息 当使用Oracle自动收集统计信息时,必须要确保Oracle参数STATISTICS_LEVEL值为TYPICAL或者ALL。...时或自上次自动统计信息收集作业完成之后目标被执行过TRUNCATE操作,那么该统计信息就变为陈旧状态,Oracle就会在指定时间段自动收集统计信息

66010

Oracle 11g系统自己主动收集统计信息一些知识「建议收藏」

在11g之前,当数据量改动超过总数据量10%,就会晚上自己主动收集统计信息。怎样推断10%。之前帖子有研究过:oracle自己主动统计信息收集原理及实验。...这个STALE_PERCENT=10%,是无法改动,假设很大。10%是许多数据,很有可能造成统计信息不准确。...exec dbms_stats.gather_database_stats(user); –收集当前数据库用户下全部对象统计信息 exec dbms_stats.gather_schema_stats...(user); –收集数据字典统计信息 exec dbms_stats.gather_dictionary_stats(); –当系统有非常大分区时,假设总是所有收集则会比較慢。...dbms_stats.get_prefs(‘INCREMENTAL’,null,’table_name‘) from dual;–查看分区INCREMENTAL值 –获取global统计信息收集设置选项

67210
领券