|
1
1
是的,您正在从表中删除。Oracle必须对基础表执行全表扫描/索引范围扫描(索引叶节点可能导致空块),直到高水位线,这使您的删除速度变慢。
删除是一个缓慢的过程。它必须先创建图像(撤消)、更新索引、写入重做日志并删除数据。由于DDL(Drop)不会生成重做/撤消(为元数据生成少量的撤消/重做),因此它将比DML(删除)更快。
具有零碎可用空间的对象可能会导致大量空间浪费,并可能影响数据库性能。整理和回收此空间的首选方法是执行联机段收缩。 详情如下: Reclaiming Unused Space 下面的博客文章演示了DML期间由于浪费空间而产生的性能影响,以及如何消除这些影响。 |
|
|
2
1
如果您正在进行删除或更新,您的空间将变得支离破碎。你可以在 documentation . 要改进流程,您可以执行以下清洁操作: shrink 或者只是在一些大插入上重新创建表。我的意思是,不执行删除和插入操作,而是创建表作为从旧的where行中选择不删除的行,然后将新的集合插入到新表中。之后,只需交换名称并删除旧表。 关于你的第二个问题,我认为答案是 here 删除分区将减少HWM,而删除不会。 |
|
3
0
这是正确的。 直接路径插入使用线段高水位线上方的空间。后续删除会删除行,但不会重置高水位线。 最好在执行另一个直接路径插入之前截断该段,因为这将重置高水位线并删除所有行。 |
|
|
maddy · 如何根据oracle SQL中的某一列值进行排名 3 年前 |
|
|
kiric8494 · 显示以元音开头和结尾的城市名称 3 年前 |
|
|
Franz Biberkopf · Oracle:组合子查询和聚合函数 4 年前 |
|
|
BitLauncher · 甲骨文-如何模拟位列和布尔和/或? 4 年前 |
|
|
Arifullah · 如何从oracle中的列中删除特定的初始字符? 4 年前 |
|
|
Anar · Oracle SQL用户定义函数 4 年前 |
|
|
user1312312 · 如何为一组表编写通用触发器? 4 年前 |