将空间网络加载到内存实际占用的内存在哪里?在客户端或服务器端?
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);
答案 0 :(得分:0)
使用LOD API时,内存将在客户端或客户端应用程序运行的位置分配。请查看此白皮书:A Load-On-Demand Approach to Handling Large Networks in the Oracle Spatial Network Data Model
答案 1 :(得分:0)
它在客户端(即主机应用程序)上。如果您正在使用PL / SQL,那么数据库本身就是主机应用程序。如果您正在使用Java并在应用程序服务器上运行代码,那么它就在应用程序服务器上。 推荐的方法是LOD。与内存中的情况相反,您可以微调,分区的大小以及应该在内存中同时加载多少分区,这样您就可以很好地控制内存消耗。内存可以被视为LOD的一个极端情况,只有1个无限分区,所有内容都加载到内存中。 LOD的缺点是需要对网络进行分区。