Sql 如何将普通表更改为物联网?
实际上,我已经创建了一个表作为Sql 如何将普通表更改为物联网?,sql,oracle11g,Sql,Oracle11g,实际上,我已经创建了一个表作为 CREATE TABLE "ATR"."S_JOURNEY" ( "TIMETABLE_ID" NUMBER(*,0) primary key, "STATION_ID" NUMBER(*,0), "SCHEDULE_ARRIVAL_TIME" VARCHAR2(8 BYTE), "SCHEDULE_DEPARTURE_TIME" VARCHAR2(8 BYTE), "
CREATE TABLE "ATR"."S_JOURNEY"
(
"TIMETABLE_ID" NUMBER(*,0) primary key,
"STATION_ID" NUMBER(*,0),
"SCHEDULE_ARRIVAL_TIME" VARCHAR2(8 BYTE),
"SCHEDULE_DEPARTURE_TIME" VARCHAR2(8 BYTE),
"OTHER_DETAILS" VARCHAR2(25 BYTE)
);
现在我只想创建一个像上面一样的索引组织表
CREATE TABLE "ATR"."iot_S_JOURNEY" organization index as select * from ATR.s_journey;
是否仍然可以使用alter
命令将正常表格更改为IOT
提前感谢无法使用
更改表
将堆表转换为物联网
你所做的猫声明可能是最简单的方法。其他两种常用方法是:
- 导出表数据,将结构重新创建为IOT,然后导入数据
- 使用联机表重新定义。文档明确指出,
使您能够: 将普通表(堆组织的)的组织更改为索引组织的表,或者执行相反的操作RDBMS\u重新定义
第二种选择更复杂,但据我所知,这是在网上完成的唯一方法。请确保您首先在非关键系统上进行测试,包括生成并发修改(如果您在现场进行测试时会发生这种情况)。所以没有像alter table organized by index这样的命令?谢谢dude..一般来说,我们无法将现有堆表更改为IOT正确!我的意思是我们需要复制它?通常的三种方法是你做的,导出/导入,以及我在回答中提到的重新定义。你可能想在CTA中按主键订购,只是为了优化插入过程。@David Aldridge:你没办法!因此,如果希望在将批量数据加载到基础表时尽可能便宜地维护索引,那么可以对插入的数据进行排序,使其与索引顺序相匹配。这通过促进更有效的块拆分来减少最终索引的大小,并通过不插入随机叶节点来减少加载期间修改的块总数。与物联网的原理相同——通过按主键值排序插入,可以减少结构的维护,从而实现更紧凑的物联网。试着做几个测试,先按主键排序,然后按随机值排序。@David Aldridge:你确定吗