我想要从唯一1表中以unique1表中存在的相同顺序插入数据到唯一2表中。我可以在oracle中插入数据时指定顺序吗?
insert /*+ append */ into unique2
select * from unique1 A where not exists (select 1 from match1 B where A. promolog_key = B. promolog_key) order by rowid asc;
上述查询是否以unique1中存在的相同顺序插入限定数据?
感谢
数据按特定顺序插入对您而言意味着什么?鉴于堆组织的表本质上是无序的,行的物理顺序通常很没有意义。唯一的例外是我能想到的是,如果'unique2'被压缩,并且你试图在同一个块中获得具有重复值的行。但是你的'rowid'命令强烈地暗示着这不是这种情况。 – 2013-02-19 16:06:15
“Order”对行在表中的存储方式没有任何意义,并且在您选择语句中强制排序以检索行时,这是毫无意义的工作。 – Wolf 2013-02-19 16:11:36
@JustinCave行的顺序可能会对索引范围扫描性能产生很大的影响,这会对优化器产生很大的影响。我想如果有人想复制一张表来进行测试,最好是源表和它的副本具有相同的顺序(当然,它不是* only * important factor =) – 2013-02-19 16:14:55