当前位置 : 主页 > 网络安全 > 测试自动化 >

性能 – Oracle Insert All vs Insert

来源:互联网 收集:自由互联 发布时间:2021-06-22
在Oracle中,我遇到了两种类型的insert语句 1)全部插入:可以使用单个sql语句插入多个条目 2)插入:每个插入一个条目将更新. 现在我想一次插入大约100,000条记录. (表有10个字段,包括主键
在Oracle中,我遇到了两种类型的insert语句

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语句.

网友评论