以下是一个据称是Sun官方考试的一部分的问题:
Reader实体与Book实体具有一对多的双向关系.两个Reader实体是持久的,每个实体都有两个与它们相关联的Book实体.例如,读者1有书a和书b,而读者2有书c和书d.哪个查询返回少于四个元素的Collection?
A.选择b.reader FROM Book b
B.选择r FROM Book b INNER JOIN b.reader r
C. SELECT r FROM Reader r INNER JOIN r.books b
D. SELECT r from book b LEFT JOIN b.reader r LEFT JOIN FETCH r.books
鉴于答案是C,我认为这是不正确的.据我所知,JPA提供者将生成两个表的内连接的SQL.因此,在所有情况下,我们将获得4条记录.我已经进行了一对多关系的测试,并且包含了重复项.
谁错了,我还是太阳?
我们正在尝试评估PostgreSQL DB作为我们应用程序中Oracle数据库的替代方案.我们使用PostgreSQL 9.5,它安装在具有128 GB内存,32个CPU内核和SSD存储的Linux机器上.连接池和分布式事务由JBoss 7应用服务器管理,SQL查询由Hibernate 4生成/执行.大多数表有数千万行,其中一行有数亿行.总共约3,000个数据库连接(它们由应用程序服务器共享)处于活动状态并同时使用.我们修改了一些查询,为慢速创建了索引,根据文档等调整了数据库和操作系统设置.但是,吞吐量慢了几倍,最终数据库响应时间增加了10-20倍.
我做了一些谷歌搜索,我找不到任何其他人(ab)使用PostgreSQL DB的信息:
Oracle处理更高的负载没有任何问题.我希望分享您的经验,建议,链接等.
谢谢