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

如果我截断表,Oracle是否会再次进行硬解析?

如果您截断表(即删除表中的所有数据),Oracle数据库会继续进行硬解析。硬解析是指在执行SQL语句之前,Oracle数据库会检查语句是否已经在共享池中存在对应的解析结果。如果存在,数据库会直接使用共享池中的解析结果,而不需要重新解析SQL语句。

截断表只是删除表中的数据,不会影响已经解析过的SQL语句的解析结果。因此,如果您截断表后再次执行相同的SQL语句,Oracle数据库会直接使用共享池中的解析结果,而不会重新解析SQL语句。

需要注意的是,截断表会导致表的存储空间被释放,但表的结构定义、索引等元数据信息仍然存在。如果您需要完全删除表的结构定义,可以使用DROP TABLE语句。

腾讯云提供了一系列的云数据库产品,包括云数据库MySQL、云数据库MariaDB、云数据库SQL Server等,您可以根据具体需求选择适合的产品。您可以访问腾讯云官网了解更多关于云数据库产品的信息:https://cloud.tencent.com/product/cdb

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

相关·内容

深入剖析 ORA-04031 的前世今生

请求,若是 large 请求,则在 reserved pool 中查找是否有可用的空间,如果找到了可用的内存 (chunck) 则做size检查,并对内存 (chunck) 做截断操作,截取所需的内存大小使用...,如果在 reserved pool 中依然没有找到可用的内存 (chunck),则会再次到 shared pool 中去查找是否有可用的内存 (chunck),如果找到了可用的内存 (chunck)...,截取所需的内存大小使用,如果没有找到,则对 sharedpool 中的对象做 LRU 算法的 age out 操作,并再次查找是否有可用的内存 (chunck),如果找到了可用的内存 (chunck)...下面简单的总结一下发生4031错误的原因以及应对措施: (1) 极高的解析,例如没有使用绑定变量。...如果解析高的话,经过一段时间 shared pool 的碎片率变得非常的高,在申请稍微大一点的 shared pool 内存时,虽然总体来说空闲的空间还有一些,但是并没有连续的较大空间可用,这就会造成

1.1K51

典型案例:深入剖析 ORA-04031 的前世今生

如果在 reserved pool 中依然没有找到可用的内存 (chunck),则会再次到 shared pool 中去查找是否有可用的内存 (chunck),如果找到了可用的内存 (chunck)...,截取所需的内存大小使用,如果没有找到,则对 sharedpool 中的对象做 LRU 算法的 age out 操作,并再次查找是否有可用的内存 (chunck),如果找到了可用的内存 (chunck)...而 Oracle 从10g开始将每一个 subpool 又划分成4个更小的 pool,姑且记为 sub subpool 吧(这个叫法只是这样叫,官方的叫法没有查到,知道这个意思就行了) 如上图中,内部...下面简单的总结一下发生4031错误的原因以及应对措施: (1) 极高的解析,例如没有使用绑定变量。...如果解析高的话,经过一段时间 shared pool 的碎片率变得非常的高,在申请稍微大一点的 shared pool 内存时,虽然总体来说空闲的空间还有一些,但是并没有连续的较大空间可用,这就会造成

1.3K90
  • Oracle-Soft ParseHard ParseSoft Soft Parse解读

    一类就是DML语句(数据操纵语言)INSERT,UPDATE,DELETE,SELECT,他们根据情况选择要么进行解析,要么进行解析。  ...当发布一条DML SQL或PL/SQL命令时,Oracle自动寻找该命令是否存在于共享池中来决定对当前的语句使用解析或软解析。...c.如果共享池中存在相同的哈希值,则对这个命令进一步判断是否进行解析,否则到e步骤。 d.对于存在相同哈希值的新命令行,其文本将与已存在的命令行的文本逐个进行比较。...这些比较包括大小写,字符串是否一致,空格,注释等,如果一致,则对其进行解析,转到步骤f.否则到d步骤。 e.解析,生成执行计划。 f.执行SQL代码,返回结果。...如果SQL语句的HASH值一致,那么ORACLE事实上还需要对SQL语句的语义进行再次检测,以决定是否一致。那么为什么Oracle需要再次对语句文本进行检测呢?不是SQL语句的HASH值已经对应上了?

    2.2K20

    【性能优化】一个执行计划异常变更的案例(上)

    11g之前,可能带来的一些负面影响就是绑定变量窥探的作用,即对于使用绑定变量窥探的SQL语句,Oracle根据第一次执行使用的绑定变量值来用于以后的执行,即第一次做解析的时候,窥探了变量值,之后的软解析...一条SQL语句在解析阶段,根据SQL文本对应的哈希值在库缓存中查找是否有匹配的Parent Cursor,进而找出是否有可重用的解析树和执行计划,若没有则要重新生成一遍,OLTP系统中,高并发的SQL...使用绑定变量除了以上可以避免解析的好处之外,还有其自身的缺陷,就是这种纯绑定变量的使用适合于绑定变量列值比较均匀分布的情况,如果绑定变量列值有一些非均匀分布的特殊值,就可能造成非高效的执行计划被选择...为了让SQL重新窥探绑定变量值,我们刷新共享池, altersystem flush shared_pool; 此时清空了所有之前保存在共享池中的信息,包括执行计划,因此再次执行就会是解析,这次我们先使用...B为条件的SQL,除非再次解析,否则这种情况不会改变。

    1.1K100

    一个执行计划异常变更的案例 - 外传之绑定变量窥探

    一条SQL语句在解析阶段,根据SQL文本对应的哈希值在库缓存中查找是否有匹配的Parent Cursor,进而找出是否有可重用的解析树和执行计划,若没有则要重新生成一遍,OLTP系统中,高并发的SQL...使用绑定变量除了以上可以避免解析的好处之外,还有其自身的缺陷,就是这种纯绑定变量的使用适合于绑定变量列值比较均匀分布的情况,如果绑定变量列值有一些非均匀分布的特殊值,就可能造成非高效的执行计划被选择...为了让SQL重新窥探绑定变量值,我们刷新共享池, alter system flush shared_pool; 此时清空了所有之前保存在共享池中的信息,包括执行计划,因此再次执行就会是解析,这次我们先使用...总结来说,绑定变量窥探会于第一次解析的时候,“窥探“绑定变量的值,进而根据该值的信息,辅助选择更加准确的执行计划,就像上述示例中第一次执行A为条件的SQL,知道A值占比重接近全数据量,因此选择了全扫描...B为条件的SQL,除非再次解析,否则这种情况不会改变。

    63630

    【每日一摩斯】-Shared Pool优化和Library Cache Latch冲突优化 (1523934.1)-系列1

    内存中的信息可能对于其他session来说是有用的——Oracle并不能事先知道这些内容是否会被再次用到; 3. ...(3)、Soft Parse(软解析) 与解析相对的,如果一个session请求的一个已经在Shared pool的SQL语句,无需进行上述执行计划计算等这些步骤,就被称为‘Soft Parse',对于应用来说...因为Oracle会将一个SQL转换为ASCII值,然后利用HASH函数计算其对应的hash值,到Library Cache中找是否有对应于此唯一HASH值的bucket,如果有比较bucket中是否存在该...SQL,若没有则执行解析。...另外,SQL解析时需要将对象进行名转换,比如讲同义词转换为实际的对象,想这里SCOTT执行的SELECT ENAME from EMP应该转换成SELECT ENAME from SCOTT.EMP

    82920

    【DB笔试面试579】在Oracle中,SQL的解析过程的解析、软解析和软软解析的区别有哪些?

    DDL语句是从来不会共享使用的,也就是说DDL语句每次执行都需要进行解析。但是,DML语句和SELECT语句根据情况选择是进行解析,还是进行解析或者进行软软解析。...SQL的解析过程大致可以参考下图: ? Oracle解析和执行目标SQL时,先去当前会话的PGA中查找是否存在匹配的缓存会话游标(Session Cursor)。...l 如果在当前会话的PGA中找不到匹配的缓存会话游标,那么Oracle就会去SGA的库缓存(Library Cache)中查找是否存在匹配的父游标。...解析是非常不好,它的危害性也有目共睹,但解析是否会对系统造成损坏实际上取决于系统的类型,对于高并发的OLTP类型的系统而言,解析确实严重影响系统的性能和可扩展性;但对于OLAP/DSS类型的系统而言...若该SQL再次执行的时候,则只需要对其进行语法分析、权限对象分析之后就可以直接从当前会话的PGA中将之前缓存的匹配会话游标直接拿过来用就可以了,这就是软软解析

    1.4K20

    【MOS】诊断 ’library cache mutex X’ 等待 (Doc ID 2331144.1)

    大量的解析:过于频繁的解析导致该等待。 高版本的游标:当发生 High version count 时,大量的子游标需要检索,从而会引起该等待。...例如:游标相关对象的统计信息搜集;游标关联,视图等对象的修改等。发生游标失效导致接下来的进程需要重新载入该游标。当游标失效过多时,导致 'library cache: mutex X' 等待。...游标重新载入:游标重新载入是指本来已经存在于 library cache 中,但是当再次查找时已经被移出 library cache(例如:由于内存压力),这时就需要重新解析并且载入该游标。...,因为解析会引起 SQL AREA 的重新装载,通过 load profile 确定解析的数量。...image-20240412174654241 该信息表明每秒会有26.3次的解析,这表明解析很高。需要检查应用是否正确使用了绑定变量,此外可以参考如下文档的“Over Parsing”部分。

    28710

    Oracle优化器之自动重新优化(Automatic Reoptimization)功能

    SQL文第一次执行时,Oracle监控操作的实际行数(A-Row),然后对比CBO估算的行数(E-Row)。2. 如果两个值相差很大,就记录实际行数(A-Row),做上标记。...下次执行时再次进行解析,根据实际行数来重新生成执行计划。3. 如果两个值相差不大,CBO就不再监控这条SQL语句。...用于当数据库重启或者被优化的SQL文从内存中Age-out后, 优化器依然意识到以前的反馈结果(实际行数和CBO估算的行数),在解析进行动态采样等处理。...Oracle会比较预估的并行度(DOP 1)和实际性能信息计算的并行度(记为DOP 2)。 如果两个值相差很大,就记录实际性能信息,并做上标记。4....下次执行时再次进行解析,根据实际性能信息来重新决定并行度。5. 如果两个值相差不大,CBO就不再监控这条SQL语句。

    75110

    20万DBA都在关注的12个问题

    ---- 问题四、Execute to Parse %指标24.95,解析比例很高 数据库中,Execute to Parse %指标24.95,SQL解析比例很低,排除cursor_sharing...希望获取SQL能找到造成大量解析的SQL文本,或者应用连接mode, 获取降低解析的方法。 诊断结论:一般来说解析高的SQL主要的原因就是没有使用绑定变量,其次就是内存不够或者BUG等原因了。...---- 问题八、TB级别数据库搭建goldengate 在这个级别搭建ogg使用table还是schema进行??,在后期结构会发生变化的情况下哪种方式方便后期维护?...诊断结论:如果非要用OGG,建议按拆分多个进程吧,不然一个进程出现问题影响整个库的同步。...---- 问题十一、ASM新加DG,数据文件如何迁移 oracle12c数据库原来创建的空间所在asm上的DG用完,又新加了一个DG如何修改原来DG上表空间的参数设置,比如表空间自动扩展 诊断结论:

    1.4K10

    【DB笔试面试582】在Oracle中,什么是绑定变量窥探(上)?

    l 如果不使用绑定变量窥探,那么对于那些可选择率可能随着具体输入值的不同而不同的谓词条件使用默认的可选择率(例如5%) 绑定变量窥探(Bind Peeking)是在Oracle 9i中引入的,是否启用绑定变量窥探受隐含参数...,Oracle沿用之前解析时所产生的解析树和执行计划,而不再重复执行上述“窥探”的动作。...此时若想Oracle进行“窥探”动作,则只能让以前的共享游标失效,重复执行一次解析即可。...让Oracle再次执行目标SQL时使用解析的方法有很多,其中很常见的一种方法是对目标SQL中所涉及的执行DDL操作。...,所以当Oracle再次执行与这个表相关的SQL时就会使用解析

    1.5K20

    查询优化器基础知识—SQL语句处理过程

    语法正确的语句可能无法进行语义检查,如以下不存在的的查询示例所示: 3.1.1.3 共享池检查 在解析期间,数据库执行共享池检查以确定它是否可以跳过资源密集的语句处理步骤。...解析操作属于以下类别,具体取决于提交的语句类型和散列检查的结果: 解析 如果Oracle数据库无法重用现有代码,那么它必须构建应用程序代码的新可执行版本。 此操作称为解析或库高速缓存未命中。...Latch争用增加语句执行时间并降低并发性。 软解析解析是任何不是解析解析如果提交的语句与共享池中的可重用SQL语句相同,则Oracle Database将重用现有代码。...软解析可以在他们执行的工作量上有所不同。 例如,配置会话共享SQL区域有时可以减少软解析中的锁存量,使其“更软”。 通常,软解析解析更可取,因为数据库跳过优化和行源生成步骤,直接执行。...因此,数据库为这些语句创建了三个单独的共享 SQL 区域,并强制对每个语句进行解析

    3.9K30

    通过错误的sql来测试推理sql的解析过程(r7笔记第31天)

    在学习Oracle的时候,必然接触到sql解析的过程。这个过程大体是这样的步骤。 1.对sql的文法检查,查看是否有文法错误,比如from,select拼写错误等。...2.在数据字典里校验sql涉及的对象是否存在。 3.将对象进行名称转换,比如同义词转义成对应的对象。...这个过程看起来比较容易理解,但是实际中我们也不能死记背,如果想推理一下其中的有些步骤,其实不用很精细的trace也可以办到。我们就用最简单的sql语句来测试。...通过这三个例子可以基本推理出文法解析是从左至右。对于是否存在是否字段存在问题都先不会解析。 然后我们修复了group by,order by的文法错误,继续测试。...可见在文法解析之后开始校验是否存在这个。这个时候还没有开始校验字段的情况。 修复了名的错误,继续测试。

    88951

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

    原因 : 使用常量(Literals)导致SQL没有被共享 如果在 SQL 语句的条件规范中使用常量而不是绑定变量,则 SQL 语句将不会被共享,并且需要进行解析。...确认 Top 的语句并确定它们是否解析, 如果发生硬解析,"Misses in the library cache" 的值将接近 Parse 的回数。...确认 Top 的语句并确定它们是否解析, 如果发生硬解析,"Misses in the library cache" 的值将接近 Parse 的回数。...这将导致游标在下一次执行时被解析,并会影响 CPU 和发生锁竞争。 确认方法 TKProf: 分析解析时间进行的排序信息。...对象失效后需要同时进行多次解析,对库缓存、共享池、字典缓存、CPU使用产生很大影响。

    70310

    Oracle 12c 新特性:SQL Plan Directives与过量的动态采样解析

    TYPE是DYNAMIC_SAMPLING,表示下次执行时,如果此SPD介入,执行动态采样。 d. REASON表示为什么oracle认为这个语句需要SPD介入。...11g的如果收集的统计信息,就不再会动态采样。而 12c 中,即使收集了统计信息,还是会被 SPD 触发,进行动态采样。 我们再来看看SPD中的信息: ?...之前说过,SPD是针对对象级的,不是SQL级的,所以,当我有一个类似的sql触发时,第一次解析的时候,SPD也介入。...可以看到,也触发了SPD,SPD指导优化器再次进行动态采样。...从的测试看,条件非常严格。不仅仅要收集所有列的直方图,还要收集(CHANNEL_ID, PRODUCT)的extended stats.收集完之后,再次解析的时候,才会不走动态采样。

    1.2K20

    自适应游标共享(Adaptive Cursor Sharing)(二)

    1.因为绑定变量窥视(Bind Peeking)功能的影响,所以解析选择执行计划时,会把绑定变量值3代入到SQL文中计算基数,SQL文在10000条数据中选择了30条数据,所以,选择了索引IND1进行...当SQL文第一次被执行的时候,因为绑定变量窥视(Bind Peeking)功能的影响,所以解析选择执行计划时,会把绑定变量值3代入到SQL文中计算选择率。...虽然SQL文在10000条数据中选择了9000条数据,选择率应该为0.9, 但是因为该SQL文已经解析过了,所以这次是软解析,使用以前的执行计划,通过索引IND1进行访问数据(INDEX RANGE...10000=0.005,并不在以前执行过游标的选择率范围内(变量值为3的选择率范围为0.002702~0.003302;变量值为9的选择率范围为0.810810~0.990990), 所以SQL文 依然是进行解析...SQL文重新解析,通过索引扫描执行。再次观察相关动态视图的变化: ? ? ? ?

    80621

    【DB笔试面试585】在Oracle中,什么是常规游标共享?

    但和SIMILAR不同的是,当CURSOR_SHARING的值为FORCE时,替换后同一类型的SQL总是无条件地重用之前解析时的解析树和执行计划(需要注意的是,因为自适应游标共享的引入,这种行为不再适用于...也就是说,如果把CURSOR_SHARING的值改为SIMILAR后再次执行这两个SQL,那么Oracle就会用系统产生的绑定变量来替换上述谓词条件中的输入值,这意味着当执行“SELECT COUNT(...确实重用之前解析时所对应的解析树和执行计划。...上述两个SQL的谓词条件虽然是不安全的,但不管是“安全的谓词条件”还是“不安全的谓词条件”,当把CURSOR_SHARING的值设为FORCE后,Oracle总是无条件重用目标SQL之前解析时的解析树和执行计划...就会无条件地重用之前解析时对应的解析树和执行计划(仅适用于Oracle l1g之前的版本)。

    87540

    Oracle 解析与软解析

    --======================= -- Oracle 解析与软解析 --======================= Oracle 解析与软解析是我们经常遇到的问题,什么情况产生硬解析...一、SQL语句的执行过程 当发布一条SQL或PL/SQL命令时,Oracle自动寻找该命令是否存在于共享池中来决定对当前的语句使用解析或软解析。...b.将SQL代码的文本进行哈希得到哈希值。 c.如果共享池中存在相同的哈希值,则对这个命令进一步判断是否进行解析,否则到e步骤。...d.对于存在相同哈希值的新命令行,其文本将与已存在的命令行的文本逐个进行比较。这些比较包括大小写,字符串是否一致,空格,注释 等,如果一致,则对其进行解析,转到步骤f。否则到d步骤。...即便是同样的SQL 语句,而两条语句中空格的多少不一样,Oracle同样进行解析

    89630
    领券