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

如何使Oracle SQL区域中的SQL语句无效,以便在收集统计信息时生成新计划

在Oracle SQL中,要使区域中的SQL语句无效,以便在收集统计信息时生成新计划,可以使用以下方法:

  1. 使用DBMS_STATS包:

DBMS_STATS包是一个用于收集和管理Oracle数据库统计信息的包。可以使用DBMS_STATS.GATHER_SCHEMA_STATS过程来收集统计信息。

示例代码:

代码语言:txt
复制
BEGIN
  DBMS_STATS.GATHER_SCHEMA_STATS(
    OWNNAME => 'your_schema_name',
    CASCADE => TRUE,
    OPTIONS => 'GATHER AUTO');
END;
/
  1. 使用ALTER SYSTEM RESET统计信息:

ALTER SYSTEM RESET STATISTICS命令用于重置统计信息。

示例代码:

代码语言:txt
复制
ALTER SYSTEM RESET STATISTICS;
  1. 使用DBMS_STATS.RESET_STATS过程:

DBMS_STATS.RESET_STATS过程用于重置指定用户的统计信息。

示例代码:

代码语言:txt
复制
BEGIN
  DBMS_STATS.RESET_STATS('your_schema_name');
END;
/
  1. 使用DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO过程:

DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO过程用于刷新数据库监视信息。

示例代码:

代码语言:txt
复制
BEGIN
  DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;
END;
/
  1. 使用DBMS_STATS.FLUSH_SCHEMA_MONITORING_INFO过程:

DBMS_STATS.FLUSH_SCHEMA_MONITORING_INFO过程用于刷新指定用户的监视信息。

示例代码:

代码语言:txt
复制
BEGIN
  DBMS_STATS.FLUSH_SCHEMA_MONITORING_INFO('your_schema_name');
END;
/

通过以上方法,可以使Oracle SQL区域中的SQL语句无效,以便在收集统计信息时生成新计划。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SQL调优系列文章之—SQL调优简介

解析和显示执行计划 PLAN_TABLE参考 SQL运算符:访问路径和连接 优化器访问路径 连接 优化器统计 优化器统计概念 直方图 配置优化程序统计信息收集选项 收集优化程序统计信息 管理扩展统计...2.收集与性能相关的数据 优化程序统计信息对SQL调优至关重要。 如果这些统计信息不存在或不再准确,则优化程序无法生成最佳执行计划。...顾问执行以下类型的分析: 检查无效或过时的统计信息 构建SQL profile SQL profile是一组特定于SQL语句的辅助信息。...该建议涉及对象统计信息的集合,新索引的创建,SQL语句的重构或SQL profile的创建。 您可以选择接受建议以完成SQL语句的调整。...在此之前,数据库不会使游标无效并继续使用旧执行计划。 标记索引在提供不足的性能优势时无法使用。当使用其他的索引的概率较低或存在空间压力时,此操作以延迟方式发生。 使用SQL计划管理避免回归。

1.9K30

Oracle数据库12cR2版本的SQL计划管理

而oracle优化器非常适合在没有用户干扰的情况下产生最佳执行计划。但SQL语句的执行计划会有不可预测的变化,原因包括重新收集优化器统计信息,更改优化器参数或对象元数据定义。...本文分为三个部分,第一部分是描述SPM基础,以及他们是如何协同工作以提供一个稳定受控的执行计划演化过程。第二部分讨论了SPM如何与影响优化器计划选择的其他Oracle数据库特性协同合作。...当自动计划收集被启用后,任何重复执行的SQL语句都会被自动创建SQL基线。为了识别可重复的SQL语句,每个SQL语句在第一次编译时优化器会记录SQL签名(从标准化SQL文本生成的唯一SQL标识符)。...如果SQL语句再次执行,那么在语句的日子中就会标记它为一条重复执行的语句,然后SQL基线就会被创建,该基线信息包括能够使优化器为当前语句生成基于cost的执行计划所需的的所有信息,如:SQL文本、outline...根据每一个测试执行时间、CPU时间和缓冲区,计算出总性能统计数据。然后对性能统计数据进行比较,如果新计划比现有的计划提高了1.5,那么它将被接受。

1.3K100
  • Oracle优化器之动态统计(Dynamic Statistics)

    概述 为了解决因为统计信息缺失或者统计不够准确而引起的问题,从9iR2的版本开始Oracle推出了动态采样(Dynamic Sampling)功能,使SQL文在硬解析过程中动态地收集统计信息。...所以为了保证优化器在SQL硬解析时选择到最优的执行计划,根据数据库动态统计的设置级别,进行动态收集Object的统计信息。 动态统计都有哪些级别,各个级别都有什么区别?...※可以通过以下设定,使并行查询时的12c自动动态统计无效。...也可以通过dynamic_sampling HINT,针对某些特定语句中的特定表,使动态统计无效。...动态统计最大的优点是,在优化器选择执行计划时,对统计信息缺失或者统计不够准确的对象,能够动态地收集统计信息,从而获得相对好的执行计划。

    1.3K20

    Oracle优化器架构变化和特定行为

    "知史以明鉴,查古以至今" 概述 优化器(Optimizer )是Oracle数据库最重要的部件之一,随着Oracle数据库每个新版本的发布,优化器都会得到增强并追加一些新功能,本文将针对各个版本出现的新特性背景和发展进行简单介绍...为了解决因为统计信息缺失或者统计不够准确而引起的问题,在紧接着推出的9iR2的版本上,Oracle又推出了动态采样(Dynamic Sampling)功能,使SQL文在硬解析过程中动态地收集统计信息。...)功能,使包含绑定变量的同一条SQL语句在多次执行时,能够根据绑定变量值和执行过程中收集信息的反馈,可以使用多个不同执行计划,实现共享游标[Cursor sharing]能够“Adaptive”(自我调节...2.在下次SQL解析过程中,使用收集的实际统计信息,更具需要生成新的执行计划。 通过以上反馈机制,能够使统计信息更加准确,更加能发映出真实数据情况,在下次SQL执行时优化器选择出最优的执行计划。...Oracle 数据库在12c版本上对此进行了增强,使优化器能够在某些SQL运行时也能自己改变执行计划,并同时收集运行时的一些额外信息帮助产生更优的执行计划。

    84910

    Oracle数据库12c release 2优化器详解

    它还概括了已有的功能是如何被增强以改善性能和易管理性。 有些Oracle优化器特性已经被从本文移除,并在它们自己的文章中被讨论。...在初次执行的时候,统计收集器收集了关于这次执行的信息,并且将一部分进入到子计划的数据行缓存起来。 优化器会确定要收集哪些统计信息,以及如何根据统计的不同值来确定计划。...这就允许多个SQL语句来共享一组由动态取样收集的统计信息。下面将要更详细讨论的SQL计划指令也会利用这种级别的动态取样。 八、自动重优化 在一个SQL语句的首次执行期间,一个执行计划如常被生成。...在一个SQL语句的首次执行期间,优化器生成了一个执行计划,并且决定是否应该为游标启动统计信息反馈监控器。...(图11: 新生成的计划使用来自初次执行的统计信息) 新计划没有标识为IS_REOPTIMIZIBLE,所以它将被这个SQL语句的所有后续执行所使用。 ?

    2K60

    如何保持Oracle数据库SQL性能的稳定性

    这是常常遇到的问题,也是一些DBA的挑战。 SQL性能变差原因分析 SQL的性能变差,通常是在SQL语句重新进行了解析,解析时使用了错误的执行计划出现的。...SQL重新解析后,跟以前相比,性能突然变差,通常是下列原因: 1. 表和索引的优化统计信息被删除,或者重新收集后统计信息不准确。重新收集统计信息通常是由于收集策略(方法)不正确引起。...比如对分区表使用analyze命令而不是用dbms_stats包、收集统计信息时采样比例过小等等。Oracle优化器严重依赖于统计信息,如果统计信息有问题,则很容易导致SQL不能使用正确的执行计划。...规划好优化统计信息的收集策略。对于Oracle 10g来说,默认的策略能够满足大部分需求,但是默认的收集策略会过多地收集列上的直方图。...修改SQL语句,使用HINT,使SQL语句按HINT指定的执行计划进行执行。这需要修改应用,同时需要逐条SQL语句进行,加上测试和发布,时间较长,成本较高,风险也较大。 3.

    1.5K70

    查询优化器概念:关于自动调整优化器及自适应查询优化

    数据库提供以下类型的优化: 正常优化 优化器编译SQL并生成执行计划。正常模式为大多数SQL语句生成合理的计划。...2、关于自适应查询优化 在Oracle数据库中,自适应查询优化(adaptive query optimization)使优化器能够对执行计划进行运行时调整,并发现可以得到更好统计信息的附加信息。...优化器统计信息收集器是在计划的关键点插入行源以收集运行时统计信息。这些统计数据帮助优化器在多个子计划之间做出最终决策。 在语句执行期间,统计信息收集器收集关于执行的信息,并缓冲子计划接收到的一些行。...在子游标的后续执行中,优化器将继续使用相同的计划,除非计划超出缓存,或者不同的优化器特性(例如,自适应游标共享或统计信息反馈)使计划无效。...2.2.3 SQL计划指示 SQL计划指令是优化器用来生成更优计划的附加信息。 例如,在查询优化期间,当决定表是否是动态统计信息的候选对象时,数据库会查询统计信息存储库,以查找表上的指令。

    1.6K10

    【MOS】library cache lock 等待事件 原因和解决方案 (Doc ID 2896611.1)

    原因: Library cache object 失效 当对对象(如表或视图)进行DDL 或收集统计信息时,依赖于它们的游标将失效。...解决方案: 不要在数据库繁忙的时间段收集统计信息 收集统计信息(ANALYZE或者DBMS_STATS)会使库缓存对象失效,并会涉及到许多依赖对象,比如游标。...在一些数据库版本中,DBMS_STATS 允许在收集统计信息时不立即使依赖对象无效(no_invalidate 选项)。 努力细节 : 低; 只需将统计信息收集更改到非高峰时段运行。...解决方案实施 依赖对象不因统计信息收集而失效的信息,请参阅以下文档。...这可以防止使用不适合的执行计划。例如,如果指定了使用“>”的范围条件,那么指定的范围会根据指定的条件值而改变,并影响成本和执行计划,因此如果指定了不同的值,则会生成一个新的子游标。

    1K10

    Oracle-内存管理解读

    当发现两个(或多个)用户都在运行同一SQL语句时,Oracle会重新组织SQL区,使这些用户能重用共享SQL区。但他们还会在私有SQL区中保存一份这条SQL语句的拷贝。...如果存在,这个共享SQL区就被用于执行这条语句。而如果不存在,Oracle就从共享池中分配一块新的共享SQL区给这条语句。...同时,无论共享SQL区存在与否,Oracle都会为用户分配一块私有SQL区以保存这条语句相关信息(如变量值)。 2. Oracle为会话分配一个私有SQL区。...在以下情况下,Oracle也会将共享SQL区从共享池中释放出来: 当使用ANALYZE语句更新或删除表、簇或索引的统计信息时,所有与被分析对象相关的共享SQL区都被从共享池中释放掉。...当下一次被释放掉的语句被执行时,又重新在一个新的共享SQL区中根据被更新过的统计信息重新解析。 当对象结构被修改过后,与该对象相关的所有共SQL区都被标识为无效(invalid)。

    1.6K40

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

    .pdf 译者 刘金龙 导 语 Oracle优化器会为SQL语句产生所有可能的访问路径(执行计划),然后从中选择一条COST值最低的执行路径,这个cost值是指oracle估算执行SQL所消耗的资源...为了让优化器能够精确计算的每一条执行计划的COST值,这就需要被执行SQL语句所需访问的所有对象(表和索引等)和系统有必要的描述信息。...本文将详细讨论,在Oracle常见的场景中何时以及如何收集统计信息,文章大致分如下几个部分: 如何收集统计信息 何时收集统计信息 提高统计信息质量 快速收集统计信息 何时不用收集统计信息 收集其他类型统计信息...如何收集统计信息 在Oracle中优选的方式是统计信息自动收集。...sql将使用这些新的没有发布的统计信息.对于其他会话中所访问的表没有pending统计信息时优化器将使用标准数据字典表中的当前统计信息.当验证这些pending统计信息之后可以使用 dbms_stats.publish_pending_stats

    1.6K81

    优化查询性能(四)

    SQL语句和计划状态 使用%PARALLEL的SQL查询可以产生多条SQL语句。 这些SQL语句的计划状态是Unfrozen/Parallel。...可以使用此跟踪编号来报告单个查询或多个查询的性能。 在“SQL语句”区域中,输入查询文本。右上角将显示一个X图标。可以使用此图标清除SQL语句区。查询完成后,选择保存查询按钮。...系统生成查询计划并收集指定查询的运行时统计信息。无论系统范围的运行时统计信息设置如何,生成报告工具始终使用收集选项3:记录查询的所有模块级别的统计信息进行收集。...该链接将打开一个单独的页面,其中显示完整的SQL语句、属性(包括WRC跟踪号和IRIS软件版本),以及包含每个模块的性能统计信息的查询计划。...生成报告工具创建一个XML文件,其中包括查询语句、具有运行时统计信息的查询计划、类定义以及与每个所选查询相关联的SQL int文件。

    2.7K30

    优化查询性能(一)

    以下SQL查询性能工具将在本手册的其他章节中介绍: 缓存查询,使动态SQL查询能够重新运行,而无需在每次执行查询时准备查询的开销。 SQL语句来保留最新编译的嵌入式SQL查询。...在“SQL语句和冻结计划”一章中。 冻结计划以保留嵌入式SQL查询的特定编译。使用此编译,而不是使用较新的编译。在“SQL语句和冻结计划”一章中。...本章还介绍如何将查询优化计划写入文件,以及如何生成SQL故障排除报告以提交给InterSystems WRC。 管理门户SQL性能工具 IRIS管理门户提供对以下SQL性能工具的访问。...注意:系统任务在所有名称空间中每小时自动运行一次,以将特定于进程的SQL查询统计信息聚合到全局统计信息中。因此,全局统计信息可能不会反映一小时内收集的统计信息。...0=关闭统计信息代码生成;1=为所有查询打开统计信息代码生成,但不收集统计信息;2=仅记录查询外部循环的统计信息(在主模块打开和关闭时收集统计信息);3=记录查询的所有模块级别的统计信息。

    2K10

    解决棘手SQL性能问题,我的SQLT使用心得

    一、SQLT背景介绍 SQLTXPLAIN(简称SQLT)是ORACLE COE提供的一款SQL性能诊断工具,SQLT主要方法是通过输入的一个SQL语句,从而生成一组诊断文件,这些文件用于诊断性能较差的或产生错误结果...OK,那么我们看看执行计划: ? 执行计划令人费解,要知道,对于表的统计信息是最新的且采样比例100%,而且也收集了STATUS列的直方图,为什么还走HASH JOIN,而且TEST1还走全表呢?...可以看到,包括CBO的环境,执行计划以及历史执行信息,表,索引等对象统计信息都在这个main文件中,大部分时候可以通过此文件,了解SQL效率不佳的原因,比如执行计划变坏的时间段内正好收集了统计信息,那么可以快速定位可能是统计信息收集不正确导致的...3、XPLORE快速诊断参数设置问题 某天晚上某系统一重要语句,迁移到新库后执行1小时都没有结果,原先很快(1s左右),业务人员焦急万分。...那么首先想到的就是检查null aware参数是否设置,经过检查: 完全没有问题,那么在收集统计信息、SQL PROFILE、可以想到的参数设置都没有问题情况下,如何解决呢?

    85740

    Oracle数据库该如何着手优化一个SQL

    而本文是假设SQL本身合理,从Oracle提供给我们的一些技术手段来简单介绍下Oracle数据库,该如何使用一些现有的技术来优化一个SQL执行的性能。...确定需要优化的SQL文本及当前SQL执行计划 确定SQL涉及的所有表及其索引的相关信息 运行SQL Tuning Advisor 得到调整建议供优化参考 收集表信息 收集索引信息 SQL Profile...收集索引信息 例如只收集ZJY用户下T2表的索引IDX_T2_1统计信息。...SQL Profile是一个对象,它包含了可以帮助查询优化器为一个特定的SQL语句找到高效执行计划的信息。这些信息包括执行环境、对象统计和对查询优化器所做评估的修正信息。...它的最大优点之一就是在不修改SQL语句和会话执行环境的情况下影响查询优化器的决定。SQL Profile中包含的并非单个执行计划的信息,SQL Profile不会固定一个SQL语句的执行计划。

    95040

    SQL Server 执行计划缓存

    在 SQL Server 中执行任何 SQL 语句时,关系引擎将首先查看过程缓存中是否有用于同一 SQL 语句的现有执行计划。...SQL Server 将重新使用找到的任何现有计划,从而节省重新编译 SQL 语句的开销。如果没有现有执行计划,SQL Server 将为查询生成新的执行计划。...重新编译执行计划 根据数据库新状态的不同,数据库中的某些更改可能导致执行计划效率降低或无效。SQL Server 将检测到使执行计划无效的更改,并将计划标记为无效。...对执行计划所使用的统计信息进行更新,这些更新可能是从语句(如 UPDATE STATISTICS)中显式生成,也可能是自动生成的。 删除执行计划所使用的索引。 显式调用 sp_recompile。...(plan_handle);--7.返回缓存查询计划的聚合性能统计信息。

    1.9K90

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

    另外,你可以依赖于动态采样来收集这些表的统计信息。优化器在优化一个语句之前编译sql语句的时候会使用动态采样来收集表的基本统计信息。...在此版本之前,数据库是不会收集内部对象统计信息的。不像其他的数据库表,当统计信息缺失时动态采样不会自动应用于包含x$表的sql语句,此时优化器会使用预定义的统计信息默认值。...,或实现一个新的模块,或改变数据库的配置,强烈建议你重新收集内部对象统计信息。...总 结 为了使oracle优化器准确地确定执行计划的成本,那么sql语句中涉及到的全部对象(表和索引)必须有准确的统计信息,且必须有准确的系统统计信息。...通过自动统计信息收集任务和此白皮书中描述的其他技术手段的组合使用,一个DBA可以为他们的环境维护一组准确的统计信息,以确保优化器得到必要的信息去选择一个最优的执行计划。

    1.2K50

    六千字带你了解 Oracle 统计信息和执行计划

    使用 gather_stats_job 自动收集是在创建数据库时自动创建的,并由调度程序进行管理。他会收集数据库中优化程序统计信息缺失或已过时的所有对象的统计信息。...dbms_stats.gather_table_ststs 参数 1、 cascade: true:表示统计表时连同索引一起收集统计 2、 no_invalidate: true:收集统计信息后,原有执行计划不失效...false:收集统计信息后,原有执行计划失效。 默认 DBMS_STATS.AUTO_INVALIDATE,Oracle 自行决定何时使执行计划失效。...好了统计信息就说到这里了,下面来进入到今天的主题:执行计划。 二、执行计划 执行计划:一条 SQL 语句在数据库中的访问路径或者执行过程的描述。...最后生成的报告就是这样的,如下图所示,也很详细。就是有点麻烦,需要查 sql_id 还要生成报告,比较繁琐,使用的人也很少,但有多个执行计划时推荐使用此方法便可以查看全部执行计划了。 ?

    2.8K42

    Oracle面试题集锦

    在建立物化视图的时候可以指定ORDER BY语句,使生成的数据按照一定的顺序进行保存。不过这个语句不会写入物化视图的定义中,而且对以后的刷新也无效。...CBO和 RBO作为不同的SQL优化器,对SQL语句的执行计划产生重大影响,如果要对现有的应用程序从RBO向CBO移植,则必须充分考虑这些影响,避免SQL语句性能急剧下降;但是,对新的应用系统,则可以考虑直接使用...共享服务器进程信息VSQLAREA 共享光标高速缓存区的统计信息,每一个有一个共享光标的统计信息 VSQLTEXT属于SGA中的共享SQL光标的SQL语句文本VSQLTEXT 属于SGA中的共享SQL...光标的SQL语句文本 VSQLTEXT属于SGA中的共享SQL光标的SQL语句文本VSTATNAME 在VSESSTAT表中表示的统计信息的译码统计名VSESSTAT表中表示的统计信息的译码统计名 VSESSTAT...这里引入了一些新的工具,从此 DBA 无需手工做这些累人的事情。(这样的说法似乎有些太绝对) 10)自动化统计收集 为对象自动化收集优化统计。

    2.7K21

    【数据库管理】数据库自动维护任务介绍

    Oracle数据库通过预定义的维护窗口中,定期自动地运行一些维护任务,用于实现如统计信息收集、SQL调优顾问等工作,以减少DBA的工作量,使数据库最优。...自动统计信息收集作业(Automatic Statistics Collection Job): 收集数据库中所有无统计信息或统计信息过时的对象的统计信息,以便提高 SQL 执行的性能。...自动优化器统计信息收集(Automatic Optimizer Statistics Collection): 收集数据库中所有无统计信息或统计信息过时的对象的统计信息,以便提高 SQL 执行的性能...自动 SQL 优化指导(Automatic SQL Tuning Advisor): 检查高负载 SQL 语句的性能,并提出如何优化这些语句的建议。...自动优化器统计信息收集(Automatic Optimizer Statistics Collection): 收集数据库中所有无统计信息或统计信息过时的对象的统计信息,以便提高 SQL 执行的性能

    1.8K20
    领券