如何在Oracle中提高单插入性能

时间:2019-05-31 14:39:30

标签: oracle performance oracle11g sql-insert

在我的业务案例中,我需要插入一行并且不能使用批处理插入。因此,我想知道Oracle可以实现什么吞吐量。我尝试这些方法:

有效方式

  • 我使用多线程,每个线程拥有一个连接以插入数据
  • 我使用ssd存储oracle数据文件

无效方式

  • 我使用多表将数据存储在一个模式中
  • 我使用表分区
  • 我使用多模式存储数据
  • 调高数据文件块大小
  • 在插入SQL中使用附加提示

最后,最佳TPS是1w / s +

其他:

  • Oracle 11g
  • 单插入数据大小1k
  • CPU i7,64GB内存

1 个答案:

答案 0 :(得分:1)

Oracle对从一行插入到成百上千批的任何内容进行了高度优化。您没有提及这一行插入是否存在性能问题,也没有提及插入需要花费多长时间。如此简单的操作,您无需担心任何这些细节。如果您有成千上万的基于Web的用户每分钟将一行插入到表中,那没有问题。如果您在适当的时间提交您的工作,并且没有大量的索引,则单行插入的时间不应超过几毫秒。

在SQL * Plus中,尝试命令

set autotrace on explain statistics
set timing on

并运行您的插入语句。

编辑您的问题以包括解释计划的结果。并确保将结果缩进4个空格。