Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 云到本地Oracle数据库连接速度缓慢_Database_Oracle_Amazon Web Services_Cloud - Fatal编程技术网

Database 云到本地Oracle数据库连接速度缓慢

Database 云到本地Oracle数据库连接速度缓慢,database,oracle,amazon-web-services,cloud,Database,Oracle,Amazon Web Services,Cloud,我有一些基于内部部署的前端Javaservlet服务器、内部部署的java后端应用服务器和一个内部部署的oracle数据库服务器。我的Oracle客户端版本是12.1.0。Java版本是openjdk“1.8.0_222”。并将TomcatV7.0.55用于前端servlet。该体系结构类似于后端服务器与Oracle DB通信以处理SQL查询 现在,除了Oracle DB之外,我将所有服务器都移动到基于AWS cloud docker的容器中。我的Java后端服务器运行在AWS docker上,

我有一些基于内部部署的前端Javaservlet服务器、内部部署的java后端应用服务器和一个内部部署的oracle数据库服务器。我的Oracle客户端版本是12.1.0。Java版本是openjdk“1.8.0_222”。并将TomcatV7.0.55用于前端servlet。该体系结构类似于后端服务器与Oracle DB通信以处理SQL查询

现在,除了Oracle DB之外,我将所有服务器都移动到基于AWS cloud docker的容器中。我的Java后端服务器运行在AWS docker上,连接到运行在本地数据中心的Oracle DB


现在,我面临一个问题:基于AWS的应用程序在连接到本地数据库时存在延迟,并且延迟随着请求数量的增加而不断增加,如果请求不断增加,应用程序最终会获得网关超时。但奇怪的是,如果我将AWS tomcat前端服务器连接到本地java后端服务器(与本地Oracle DB对话),这种情况就不会发生。只有当AWS Java后端服务器与本地Oracle DB对话时,才会发生这种情况。我不知道为什么会这样。任何想法都将受到高度赞赏。

这个问题与我们使用的DAO/ORM框架有关。如果您使用Hibernate之类的工具,Spring将以一种不使用join语句优化SQL调用的方式工作。因此,要获取1000个对象,将有1000多个SQL调用。所以,如果网络到数据库的延迟为一位数毫秒,它将引导到1000倍的延迟时间。因此,解决方案是使数据库与应用程序尽可能接近。

我注意到的一件事是,我的本地服务器能够与本地Oracle数据库进行多个会话。然而,基于云的docker容器仅与内部Oracle数据库创建顺序会话,即使所有容器都运行相同的应用程序。