Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何将普通表更改为物联网?_Sql_Oracle11g - Fatal编程技术网

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:你确定吗