云数据库 GAUSSDB-ALTER INDEX:语法格式

时间:2024-11-13 14:45:36

语法格式

  • 重命名表索引的名称。
    1
    2
    ALTER INDEX [ IF EXISTS ] index_name 
        RENAME TO new_name;
    
  • 修改表索引的所属空间。
    1
    2
    ALTER INDEX [ IF EXISTS ] index_name 
        SET TABLESPACE tablespace_name;
    
  • 修改表索引的存储参数。
    1
    2
    ALTER INDEX [ IF EXISTS ] index_name 
        SET ( {storage_parameter = value} [, ... ] );
    
  • 重置表索引的存储参数。
    1
    2
    ALTER INDEX [ IF EXISTS ] index_name 
        RESET ( storage_parameter [, ... ] );
    
  • 设置表索引或索引分区不可用。
    1
    2
    ALTER INDEX [ IF EXISTS ] index_name 
        [ MODIFY PARTITION index_partition_name ] UNUSABLE;
    
  • 重建表索引或索引分区。
    1
    2
    ALTER INDEX index_name 
        REBUILD [ PARTITION index_partition_name ];
    
  • 重命名索引分区。
    1
    2
    ALTER INDEX [ IF EXISTS ] index_name 
        RENAME PARTITION index_partition_name TO new_index_partition_name;
    
  • 修改索引分区的所属表空间。
    1
    2
    ALTER INDEX [ IF EXISTS ] index_name 
        MOVE PARTITION index_partition_name TABLESPACE new_tablespace;
    
  • 设置分布式全局二级索引状态。
    ALTER INDEX [ IF EXISTS ] index_name GSIVALID;
    ALTER INDEX [ IF EXISTS ] index_name GSIREADY;

    此语法主要用于CREATE GLOBAL INDEX CONCURRENTLY/REINDEX INDEX CONCURRENTLY功能内部调用,修改全局二级索引状态,用户不建议使用。如使用,会返回错误提示信息。

  • 设置分布式全局二级索引可用。
    ALTER INDEX [ IF EXISTS ] index_name GSIUSABLE;

    此语法主要用于VACUUM FULL功能内部调用,修改全局二级索引状态,用户不建议使用,否则可能导致索引数据与表数据不一致。如需启用UNUSABLE状态的GSI,建议使用REINDEX INDEX语法重新创建GSI。

  • 用于设置索引状态为可见。
    ALTER INDEX [ IF EXISTS ] index_name VISIBLE;
    • 此语法仅支持在ORA兼容性数据库下(即sql_compatibility = 'ORA')设置,在其他数据库兼容模式下不支持。
    • 当disable_keyword_options参数设置为“visible”时,VISIBLE关键字不支持使用。
    • 升级未提交阶段,不支持使用此语法。
  • 用于设置索引状态为不可见。
    ALTER INDEX [ IF EXISTS ] index_name INVISIBLE;
    • 此语法仅支持在ORA兼容性数据库下(即sql_compatibility = 'ORA')设置,在其他数据库兼容模式下不支持。
    • 当disable_keyword_options参数设置为“invisible”时,INVISIBLE关键字不支持使用。
    • 升级未提交阶段,不支持使用此语法。
    • 备机读场景下,设置索引状态为不可见后,查询语句的执行计划可能会发生变化,备机查询性能可能会受到影响。
  • 用于将下一个未分配的xid和csn记录在各节点内的临时用户表的reloption中,以备合并临时表时的剪枝。
    ALTER INDEX [ IF EXISTS ] index_name GSIGETXID;

    此语法主要用于CREATE GLOBAL INDEX CONCURRENTLY/REINDEX INDEX CONCURRENTLY功能内部调用,用户不建议使用。如使用,会返回错误提示信息。

  • 用于合并分布式全局二级索引与临时用户表。
    ALTER INDEX [ IF EXISTS ] index_name GSIMERGE;

    此语法主要用于CREATE GLOBAL INDEX CONCURRENTLY/REINDEX INDEX CONCURRENTLY功能内部调用,用户不建议使用。如使用,会返回错误提示信息。

  • 用于在线重建分布式全局二级索引中切换新旧分布式全局二级索引。
    ALTER INDEX [ IF EXISTS ] index_name GSISWITCH;

    此语法主要用于CREATE GLOBAL INDEX CONCURRENTLY/REINDEX INDEX CONCURRENTLY功能内部调用,用户不建议使用。如使用,会返回错误提示信息。

support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0491.html