首页 / 知识
关于java:使用JPA / Toplink的批量插入
2023-04-15 11:24:00

Batch insert using JPA/Toplink我有一个Web应用程序,该应用程序通过HTTP界面接收消息,例如:
此请求包含发件人的ID,收件人的ID和消息的文本。 此消息应按以下方式处理:
该树将由我无法触摸的其他应用程序加载。 我将Oracle用作备份数据库,将JPA与Toplink一起用于数据库处理任务。如果可能的话,我会留下来。 在没有太多优化的情况下,我可以在环境中实现约30个请求/秒的吞吐量。数量不多,我需要约300个请求/秒。因此,我测量了性能瓶颈所在的位置,并发现对 我试图编写一个小型测试应用程序,该应用程序使用简单的JDBC调用将一百万条消息持久保存到同一数据库中。我使用了批处理,这意味着我先进行了100次插入,然后进行了一次提交,然后重复进行直到所有记录都在数据库中为止。在这种情况下,我测量了?500个请求/秒的吞吐量,这可以满足我的需求。 很明显,我需要在这里优化插入性能。但是,正如我前面提到的,我想为此继续使用JPA和Toplink,而不是纯JDBC。 您知道一种使用JPA和Toplink创建批量插入的方法吗?您可以推荐其他任何方法来提高JPA持久性吗? 附加信息: "请求/秒"在这里表示:请求总数/从测试开始到写入数据库的最后一条记录的总时间。 我试图通过在servlet内容和持久性之间创建一个内存中队列来使对 在这种分离的方法中,我在提交事务之前收集了100毫秒的请求,并在所有收集的项目上调用了 您应该与JPA界面解耦,并使用裸露的TopLink API。您可能可以将要持久保存的对象插入到UnitOfWork中,并按计划(同步或异步)提交UnitOfWork。注意,em.persist()的代价之一是整个对象图的隐式克隆。如果您自己uow.registerObject()两个用户对象,则TopLink会更好地工作,并保存自身必须进行的身份测试。因此,您将得到:
这是一所非常老派的TopLink btw;) 请注意,批处理将有很大帮助,因为将开始进行批处理,尤其是带有参数绑定的批处理写,对于这个简单的示例而言,这可能会对您的性能产??生很大的影响。 要查找的其他内容:您的序列大小。实际上,花费大量时间在TopLink中编写对象实际上是从数据库中读取序列信息,尤其是对于较小的默认值(我的序列大小可能有几百甚至更多)。 您对"请求/秒"的度量是多少?换句话说,对于第31个请求会发生什么?哪些资源被阻止?如果它是前端/ servlet / Web部分,您可以在另一个线程中运行em.persist()并立即返回吗? 此外,您是否每次都在创建交易?您是否在每个请求中都创建EntityManagerFactory对象? |
最新内容
相关内容
linux模拟请求命令?
linux模拟请求命令?,地址,工作,系统,工具,信息,标准,命令,目录,发行,数据,linux怎么加端口url请求在/etc/services中添加端口以及对应进程名及linux命令界面缩小?
linux命令界面缩小?,系统,工具,网站,数字,等级,地址,缩放,信息,统一,异常,linux火狐浏览器网页无法缩放据您所描述的情况来看,这个现象比较接近linux进命令行界面?
linux进命令行界面?,系统,工具,首页,密码,终端,界面,命令,快捷键,窗口,桌面,linux中如何关闭图形界面切换到命令行界面?命令行→图形 startxlinux命令切换到界面?
linux命令切换到界面?,密码,系统,暂停,状态,终端,工具,地方,环境,信息,数字,在LINUX中,用Ctrl+z挂起的命令怎么切回到原任务的命令窗口?1、joblinux命令行界面输入?
linux命令行界面输入?,位置,系统,密码,设备,信息,数据,地址,状态,交通,首开,linux,按了ctrl+alt+F1,进入了类似纯命令行的界面,让输入login信linux开机命令行界面?
linux开机命令行界面?,系统,数字,首页,终端,密码,发行,工具,地方,界面,命令,怎样使Linux一开机就进入命令行1、linux如何进入命令行?我们一起来linux美化命令界面?
linux美化命令界面?,系统,密码,工具,电脑,界面,终端,地方,官网,设备,管理,Linux下如何从命令行模式切换到图形界面模式?1、Linux命令行模式切linux命令切换至界面?
linux命令切换至界面?,系统,密码,电脑,图形界面,工具,地方,软件,界面,文件,命令,切换Linux系统下图形界面与Linux命令行模式1、手工切换:在图形linux命令界面放大?
linux命令界面放大?,系统,工具,地址,信息,状态,软件,等级,虚拟机,分辨率,命令,Linux命令行字符太小如何调大1、在命令模式下,将光标移动到将要linux切命令行和界面?
linux切命令行和界面?,系统,密码,工具,首页,终端,界面,图形界面,命令,模式,快捷键,ubuntu16.04命令行模式和图形界面互相切换的两种解决办法1linux命令界面登录?
linux命令界面登录?,系统,工具,密码,数字,设备,终端,软件,工作,服务,状态,linux,按了ctrl+alt+F1,进入了类似纯命令行的界面,让输入login信息,linux资源界面命令?
linux资源界面命令?,系统,密码,终端,电脑,界面,软件,地方,工作,发行,一致,LINUX的命令界面是如何出来的?1、打开linux系统,在linux的桌面的空白