有一个独立的层来访问数据库

问题描述 投票:0回答:1

如果我有多个应用程序,每个应用程序通过直接JDBC调用或通过Hibernate访问自己的数据库,是否有另一层对象从应用程序读取请求,如果在此层中找到返回结果,如果找不到,则转到检索它的数据库,就像一个缓存?这个新层还从应用程序获取写入请求并相应地更新DB,然后更新自己的缓存。谢谢

java oracle hibernate
1个回答
0
投票

从理论上讲,Oracle数据库通过数据库链接相互通信。假设您创建一个新数据库(或一个现有模式中的模式,然后由所有应用程序使用)。

为了从所有这些数据中收集数据,您需要创建前面提到的数据库链接并创建从不同来源选择数据的视图。这些视图将使用UNION(ALL)集合运算符。请注意,如果访问大型数据集,则数据库链接上的视图可能会变慢。

或者,您可以创建实体化视图并按需或按计划刷新它们。

优点和缺点:如果您使用视图,您可以读取(慢?)并写入数据(通过而不是触发器)。如果你使用物化视图(MV),你可以阅读(快速,因为MV可以被索引),但你不能写入它们,因为下次刷新将使这些更改消失。

另一方面,如果新的“层”(如你所说)不合并来自不同数据库的数据,但是以1个现有数据库= 1个新层的方式使用,那么我认为没有任何好处那。在这种情况下,也许您应该注意现有数据库中的性能调整(索引表,定期收集统计数据等)。

© www.soinside.com 2019 - 2024. All rights reserved.