Oracle网络在哪里加载?在服务器上,在客户端内存上



将空间网络加载到内存时,实际占用的内存在哪里?在客户端还是服务器端?

PS,加载网络到内存的例子:PL/SQL:

sdo_net_mem.network_manager.read_network(net_mem=>'XXX', allow_updates=>'TRUE');
Java:

NetworkMetadata metadata = LODNetworkManager.getNetworkMetadata(sql.getConnection(), 'XXX', 'XXX');
NetworkIO networkIO = LODNetworkManager.getNetworkIO(sql.getConnection(), 'XXX', 'XXX', metadata);
networkIO.readLogicalNetwork(1);

当使用LOD api时,内存是在客户端或客户端应用程序运行的地方分配的。请看这份白皮书:Oracle空间网络数据模型中处理大型网络的按需加载方法

它在客户端(即主机应用程序)上。如果您使用PL/SQL,那么数据库本身就是主机应用程序。如果您使用Java并在应用服务器上运行代码,那么它就在应用服务器上。推荐的方法是LOD。与内存中相比,您可以微调分区的大小以及一次应该在内存中加载多少分区,这样您就可以很好地控制内存消耗。内存中可以被视为LOD的一种极端情况,只有一个无限分区,所有内容都加载到内存中。LOD的缺点是需要对网络进行分区。

最新更新