广告
返回顶部
首页 > 资讯 > 数据库 >Oracle 12.2之后ALTER TABLE .. MODIFY转换非分区表为分区表
  • 849
分享到

Oracle 12.2之后ALTER TABLE .. MODIFY转换非分区表为分区表

2024-04-02 19:04:59 849人浏览 独家记忆
摘要

说明 本文将包含如下内容: oracle 19.5 测试ALTER TABLE ... MODIFY转换非分区表为分区表 创建测试表 CREATE TABLE TEST_MODIF

说明

本文将包含如下内容:

oracle 19.5 测试ALTER TABLE ... MODIFY转换非分区表为分区表

创建测试表

CREATE TABLE TEST_MODIFY(ID NUMBER,NAME VARCHAR2(30),STATUS VARCHAR2(10));

插入30万数据

declare
v1 number;
begin
for i in 1..300000
loop
execute immediate 'insert into test_modify values(:v1,''czh'',''Y'')' using i;
end loop;
commit;
end;
/

添加主键约束与索引

ALTER TABLE TEST_MODIFY ADD CONSTRaiNT PK_TEST_MODIFY PRIMARY KEY(ID);
CREATE INDEX IDX_TEST_MODIFY ON TEST_MODIFY(CASE STATUS WHEN 'N' THEN 'N' END);

收集统计信息

exec dbms_stats.gather_table_stats(OWNNAME=>'CZH',TABNAME=>'TEST_MODIFY',cascade=>TRUE);

查询索引状态

14:56:06 CZH@czhpdb > select INDEX_NAME,NUM_ROWS,LEAF_BLOCKS,status from user_indexes where index_name in ('IDX_TEST_MODIFY','PK_TEST_MODIFY');
INDEX_NAME                                           NUM_ROWS                              LEAF_BLOCKS STATUS
-------------------- ---------------------------------------- ---------------------------------------- ----------
IDX_TEST_MODIFY                                             0                                        0 VALID
PK_TEST_MODIFY                                         300000                                      626 VALID

转换ALTER TABLE ... MODIFY

ALTER TABLE TEST_MODIFY MODIFY
PARTITioN BY RANGE (ID)
( PARTITION P1 VALUES LESS THAN (100000),
PARTITION P2 VALUES LESS THAN (200000),
PARTITION P3 values less than (maxvalue)
) ONLINE
UPDATE INDEXES;

查询索引状态

14:57:11 CZH@czhpdb > select INDEX_NAME,NUM_ROWS,LEAF_BLOCKS,status from user_indexes where index_name in ('IDX_TEST_MODIFY','PK_TEST_MODIFY');
INDEX_NAME                                           NUM_ROWS                              LEAF_BLOCKS STATUS
-------------------- ---------------------------------------- ---------------------------------------- ----------
IDX_TEST_MODIFY                                             0                                        0 VALID
PK_TEST_MODIFY                                         300000                                      626 N/A

索引转换官方文档说明

If you do not specify the INDEXES clause or the INDEXES clause does not specify all

the indexes on the original non-partitioned table, then the following default

behavior applies for all unspecified indexes.

– Global partitioned indexes remain the same and retain the original partitioning

shape.

– Non-prefixed indexes become global nonpartitioned indexes.

Prefixed indexes are converted to local partitioned indexes.

Prefixed means that the partition key columns are included in the index

definition, but the index definition is not limited to including the partitioning

keys only.

– Bitmap indexes become local partitioned indexes, regardless whether they are

prefixed or not.

Bitmap indexes must always be local partitioned indexes.

• The conversion operation cannot be perfORMed if there are domain indexes

参考文档:

Oracle® Database VLDB and Partitioning Guide

您可能感兴趣的文档:

--结束END--

本文标题: Oracle 12.2之后ALTER TABLE .. MODIFY转换非分区表为分区表

本文链接: https://www.lsjlt.com/news/46451.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle 12.2之后ALTER TABLE .. MODIFY转换非分区表为分区表
    说明 本文将包含如下内容: ORACLE 19.5 测试ALTER TABLE ... MODIFY转换非分区表为分区表 创建测试表 CREATE TABLE TEST_MODIF...
    99+
    2022-10-18
  • Oracle 12.2新特性----在线把非分区表转为分区表
    在Oracle12.2版本之前,如果想把一个非分区表转为分区表常用的有这几种方法:1、建好分区表然后insert into select 把数据插入到分区表中;2、使用在线重定义(DBMS_RED...
    99+
    2022-10-18
  • Oracle怎么把非分区表转为分区表
    这篇文章主要介绍“Oracle怎么把非分区表转为分区表”,在日常操作中,相信很多人在Oracle怎么把非分区表转为分区表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Orac...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作