Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
Spring oracle可以同时处理多少个select查询_Spring_Hibernate_Jsf_Oracle11g - Fatal编程技术网

Spring oracle可以同时处理多少个select查询

Spring oracle可以同时处理多少个select查询,spring,hibernate,jsf,oracle11g,Spring,Hibernate,Jsf,Oracle11g,我正在用Java、Spring3.2和WebFlow、Hibernate3、Oracle11g和JSF2.x构建相当复杂的应用程序 简而言之,每个用户都可以构建自己的网页,在应用程序中创建公共网站。由于所有内容都必须是可定制的,所以它也是非常通用的,每个页面都由文章、翻译、菜单等组成,所有这些都是由数据库实体定义的 每当访问网页时,hibernate执行一系列SELECT查询以收集所有数据。这是相对快速的,因为从db加载一个页面大约需要10毫秒,但是每个页面执行大约4-5个查询 因此,如果cli

我正在用Java、Spring3.2和WebFlow、Hibernate3、Oracle11g和JSF2.x构建相当复杂的应用程序

简而言之,每个用户都可以构建自己的网页,在应用程序中创建公共网站。由于所有内容都必须是可定制的,所以它也是非常通用的,每个页面都由文章、翻译、菜单等组成,所有这些都是由数据库实体定义的

每当访问网页时,hibernate执行一系列SELECT查询以收集所有数据。这是相对快速的,因为从db加载一个页面大约需要10毫秒,但是每个页面执行大约4-5个查询

因此,如果client1访问页面A,将执行5个查询

我的雇主担心同时查询的数量可能是Oracle数据库的一个问题。例如,如果1000个用户将同时访问不同的页面,则需要执行大约5000个查询。注:我使用标准的Spring连接池等

我的第一个问题是:Oracle数据库可以同时处理多少个SELECT查询?运行太多查询真的是个问题吗?我确实找到了一些关于并发会话的信息,但没有关于查询的信息,这些信息不应该是并发的,因为它们是只读的。你有什么经验

我已经实施了一些优化改进:

1) 一些信息,如翻译,被存储在内存中。但我认为apache服务器内存不足的可能性比Oracle数据库查询不足的可能性更大

2) 在有意义的地方,我使用FetchType.JOIN来减少查询数量。当只涉及一个连接时,这很有效,但我担心随着复杂性的急剧增加(即5个连接及以上),性能会下降到最底层。你觉得这个怎么样

总之,这是一个真正的问题吗?如果是的话,最好的策略是什么

非常感谢你能给予的任何帮助。如果您特别需要任何代码或JdbcLogger日志,请告诉我


p、 改变基础设施(spring webflow、jsf等)不是一个选项。

我相信您已经阅读了关于可能的改变解决方案(在不同层上)的文章。嗨,我肯定对大型应用程序的性能没有信心。Hibernate使用缓存,但是对于我能看到的内容,同一个页面只缓存一个会话,如果用户更改了页面,则需要重新加载。从理论上讲,该网站可以随时由客户端修改,因此目前,我手动存储到内存中的唯一内容是翻译。我真的不知道你说的数据库查询层是什么意思,所以我现在就来看看。