当我的应用程序加载时,我正在导出几个breeze实体并将它们存储在本地缓存中,以便稍后当我必须再次使用这些实体时,我将它们从本地存储导入并在本地执行查询。
有一个实体有84389行。我注意到importEntites需要更长时间才能执行此实体。有没有办法可以加快这个?
var entities = manager.getEntities('Client');
var exportedEntity = manager.exportEntities(entities, { includeMetadata: false });
我将exportedEntity存储在缓存中。
我从缓存中获取后将上面的exportedEntity导入entitymanager。
entityManager.importEntities(exportedEntity);
上述声明需要更长时间才能实现客户端实体。客户端在表中有80K行。我不确定是否会降低importEntities方法的执行速度。 我也在导入实体后在本地执行查询。
答案 0 :(得分:1)
我认为您的意思是您拥有一个实体类型,Client
,其中包含84k行/实体。
这是很多对象。我会重新考虑是否应该将这些数据视为丰富的Breeze实体,或者是否应将它们作为数据对象以更简单,更紧凑的形式保存。我非常倾向于后者,特别是如果它们是只读的。将只读数据表示为实体的好处较少,并且在这些卷上,可能性能和内存使用率较低。
请记住,并非所有数据都必须是实体,Breeze很乐意获取实体和原始数据的混合。混合应用很常见。
如果您仍想探索将它们视为实体,可以尝试使用以下导出命令将给定类型的所有实体输出为JSON:
var exported = manager.exportEntities('Client', {asString:false, includeMetadata:false});
结果可以像以前一样导入。
var imported = manager.importEntities(exported);
此可能提高导出和导入速度(或不提高)。
之后您不必在本地查询。所有导入的实体都在imported.entities
。