在Oracle中,我遇到了两种类型的insert语句 1)全部插入:可以使用单个sql语句插入多个条目 2)插入:每个插入一个条目将更新. 现在我想一次插入大约100,000条记录. (表有10个字段,包括主键
1)全部插入:可以使用单个sql语句插入多个条目
2)插入:每个插入一个条目将更新.
现在我想一次插入大约100,000条记录. (表有10个字段,包括主键).我并不担心任何回报价值.
我正在使用oracle 11g.
能否帮助我提高性能,“插入”或“全部插入”.
Insert语句和insert all语句实际上与传统的insert语句相同. insert all,已在9i版本中引入,只允许您使用一个语句插入多个表.您可以用来加速进程的另一种类型的插入是直接路径插入 – 您使用/ * append * /或/ * append_values * /(Oracle 11g)提示insert /*+ append*/ into some_table(<<columns>>) select <<columns or literals>> from <<somwhere>>
或(Oracle 11g)
insert /*+ append_values*/ into some_table(<<columns>>) values(<<values>>)
告诉Oracle您要执行直接路径插入.但是,100K行并不是那么多行和传统的insert语句就可以了.使用具有大量数据的直接路径插入,您不会获得显着的性能优势.此外,直接路径插入不会重复使用自由空间,它会在HWM(高水位线)之后添加新数据,因此需要更多空间.如果您尚未发出提交,则无法使用select语句或其他DML语句.