zoukankan      html  css  js  c++  java
  • oracle 12.2 alter table move online

    我们使用主键和辅助索引创建和填充测试表。这将用于示例移动操作。

    DROP TABLE t1 PURGE;
    
    -- Create table.
    CREATE TABLE t1 AS
    SELECT level AS id,
           'Description for ' || level AS description,
           SYSDATE AS created_date
    FROM   dual
    CONNECT BY level <= 1000;
    COMMIT;
    
    ALTER TABLE t1 ADD CONSTRAINT t1_pk PRIMARY KEY (id);
    CREATE INDEX t1_created_date_idx ON t1(created_date);

    移动(离线)

    在以前的版本中,移动表是脱机操作,默认情况下,标记索引为不可用。

    -- Offline: Basic move.
    ALTER TABLE t1 MOVE TABLESPACE users;
    
    -- Check indexes.
    SELECT index_name, status FROM user_indexes ORDER BY 1;
    
    INDEX_NAME                     STATUS
    ------------------------------ --------
    T1_CREATED_DATE_IDX            UNUSABLE
    T1_PK                          UNUSABLE
    
    2 rows selected.
    
    SQL>

    我们可以手动重新生成索引。

    -- Manually rebuild indexes.
    ALTER INDEX t1_pk REBUILD ONLINE;
    ALTER INDEX t1_created_date_idx REBUILD ONLINE;
    
    -- Check indexes.
    SELECT index_name, status FROM user_indexes ORDER BY 1;
    
    INDEX_NAME                     STATUS
    ------------------------------ --------
    T1_CREATED_DATE_IDX            VALID
    T1_PK                          VALID
    
    2 rows selected.
    
    SQL>

    或者,我们可以包括子句来管理我们的索引。UPDATE INDEXES

    -- Offline: Include UPDATE INDEXES to manage the indexes.
    ALTER TABLE t1 MOVE TABLESPACE users UPDATE INDEXES;
    
    -- Check indexes.
    SELECT index_name, status FROM user_indexes ORDER BY 1;
    
    INDEX_NAME                     STATUS
    ------------------------------ --------
    T1_CREATED_DATE_IDX            VALID
    T1_PK                          VALID
    
    2 rows selected.
    
    SQL>

    MOVE ONLINE

    From Oracle 12.2 onward we can move the table as an online operation using the keyword. In addition to moving the table, the online move automatically maintains the indexes.ONLINE

    -- Online: Basic move.
    ALTER TABLE t1 MOVE ONLINE TABLESPACE users;
    
    -- Check indexes.
    SELECT index_name, status FROM user_indexes ORDER BY 1;
    
    INDEX_NAME                     STATUS
    ------------------------------ --------
    T1_CREATED_DATE_IDX            VALID
    T1_PK                          VALID
    
    2 rows selected.
    
    SQL>

    我们还可以使用此功能在联机操作中更改表压缩和存储参数。

    -- Online: Change table compression.
    ALTER TABLE t1 MOVE ONLINE TABLESPACE users COMPRESS;
    ALTER TABLE t1 MOVE ONLINE TABLESPACE users NOCOMPRESS;
    
    -- Online: Change storage parameters.
    ALTER TABLE t1 MOVE ONLINE STORAGE (PCTINCREASE 0);

    限制

    • 不能与任何其他子句结合使用。
    • 它不能用于分区索引组织的表或索引组织的表,这些表的列定义为 LOB、VARRAY、Oracle 提供的类型或用户定义的对象类型。
    • 如果表上存在域索引,则不能使用它。
    • 不支持对具有持续联机移动的对象进行并行 DML 和直接路径插入。
  • 相关阅读:
    H5相关网址
    ASP.NET MVC Razor视图引擎攻略
    深度解析 ASP.NET MVC 5
    .Net MVC 框架基础知识
    java SDK服务端推送 --极光推送(JPush)
    Nexus Repository Manager OSS 3.x 安装配置
    java项目中使用ffmpeg剪辑部分视频
    net 异步与同步
    IDEA把spring-boot项目打包成jar
    开放api接口签名验证
  • 原文地址:https://www.cnblogs.com/nadian-li/p/13705877.html
Copyright © 2011-2022 走看看