gpt4 book ai didi

oracle - 在 Oracle 10g 中启用/禁用 ROW_MOVEMENT 有什么影响?

转载 作者:行者123 更新时间:2023-12-04 01:47:02 25 4
gpt4 key购买 nike

我们使用的是 oracle 10G,如果我们查询/删除数据,其中一张表会花费很多时间。该表包含大约 1000 万条记录。

最近我们发现这张表上禁用了 ROW_MOVEMENT,我们想了解以下内容:

  • 如果启用 ROW_MOVEMENT ,我们可以获得什么性能提升?
  • 启用 ROW_MOVEMENT 有什么缺点吗?
  • 什么触发器的行移动? oracle 如何决定它需要移动 ROWS ?

  • 任何帮助将不胜感激。

    提前致谢 !!

    最佳答案

    行情主要是applied to partition tables .它允许跨分区移动行。禁用行移动(默认设置)后,您无法使用更新移动行:

    SQL> CREATE TABLE part_table (ID NUMBER)
    2 PARTITION BY RANGE (ID)
    3 (PARTITION p0 VALUES LESS THAN (1),
    4 PARTITION p1 VALUES LESS THAN (MAXVALUE));

    Table created

    SQL> INSERT INTO part_table VALUES (0);

    1 row inserted

    SQL> UPDATE part_table SET ID = 2;

    UPDATE part_table SET ID = 2

    ORA-14402: updating partition key column would cause a partition change

    当您允许行移动时,您可以通过更新移动行:
    SQL> ALTER TABLE part_table ENABLE ROW MOVEMENT;

    Table altered

    SQL> UPDATE part_table SET ID = 2;

    1 row updated

    在大多数情况下,此功能不会影响性能:无论是否启用该功能,行都以完全相同的方式存储和查询。但是,当启用行移动时,可以使用 ALTER TABLE SHRINK SPACE 物理移动行(类似于删除+插入)。例如。 例如,可能反过来影响索引集群因素,这可能会影响某些查询的性能。

    默认情况下禁用行移动,因为这意味着 rowid行的可能会改变,这不是 Oracle 中的通常行为。

    关于oracle - 在 Oracle 10g 中启用/禁用 ROW_MOVEMENT 有什么影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19430145/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com