Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance GAE HR数据存储上的db.get([keys])速度非常慢_Performance_Google App Engine_Google Cloud Datastore - Fatal编程技术网

Performance GAE HR数据存储上的db.get([keys])速度非常慢

Performance GAE HR数据存储上的db.get([keys])速度非常慢,performance,google-app-engine,google-cloud-datastore,Performance,Google App Engine,Google Cloud Datastore,我正在使用db.get([keys]),并且读取速度非常慢。简单测试至少需要“9008cpu_ms 2125api_cpu_ms”关键帧数组长度约为200正常吗? 实体很小: p1 = db.StringProperty(indexed=False) - ~20 characters p2 = db.StringProperty(indexed=False, required=True) ~10 characters p3 = db.GeoPtProperty(indexed=False, re

我正在使用db.get([keys]),并且读取速度非常慢。简单测试至少需要“9008cpu_ms 2125api_cpu_ms”关键帧数组长度约为200正常吗? 实体很小:

p1 = db.StringProperty(indexed=False) - ~20 characters
p2 = db.StringProperty(indexed=False, required=True) ~10 characters
p3 = db.GeoPtProperty(indexed=False, required=True)
p4 = db.StringListProperty(indexed=False) 10 items x ~10 characters
HRD数据存储中的实体总数:~1000。获取:~200

Appstats显示:

datastore_v3.RunQuery    9ms (29ms api)
datastore_v3.Next    32ms (16ms api)
datastore_v3.Next    11ms (16ms api)
datastore_v3.Next    16ms (16ms api)
datastore_v3.Next    86ms (16ms api)
datastore_v3.Next    8ms (16ms api)
datastore_v3.Next    84ms (16ms api)
datastore_v3.Next    8ms (16ms api)
datastore_v3.Next    92ms (16ms api)
datastore_v3.Next    14ms (16ms api)
datastore_v3.Next    82ms (16ms api)
datastore_v3.Next    8ms (16ms api)
datastore_v3.Next    86ms (16ms api)
datastore_v3.Next    96ms (16ms api)
datastore_v3.Next    7ms (16ms api)
datastore_v3.Next    92ms (16ms api)
datastore_v3.Next    92ms (16ms api)
datastore_v3.Next    9ms (16ms api)
datastore_v3.Next    89ms (16ms api)
datastore_v3.Next    7ms (4ms api)
datastore_v3.Get    5692ms (8ms api)
datastore_v3.Get    5688ms (8ms api)
datastore_v3.Get    5684ms (8ms api)</code>
以及数以百计的:

datastore_v3.Get    ~ 5681ms (8ms api)
资料来源:

logging.debug('Fetching ' + str(len(m.keys())) + ' entities')
items = db.get(m.keys())
logging.debug('Done fetching items')
日志:

更新1(2011年10月31日星期一23:33:42 UTC):

在搜索可能的解决方案时,我删除了StringList属性并重新创建了实体。没有变化

样本实体:

ID/Name|description|location|name
id=804|Sample description|54.8968721,23.892426|Sample place
更新2(2011年11月1日星期二12:27:31 UTC):

Appstats输出的屏幕截图:


是的,获取1000个实体(每个实体在listproperty中有10个项目!)需要一段时间是正常的。高CPU毫秒数表示您在解码和处理实体上花费了大量时间,而实际获取实体的API时间除外


请记住,默认情况下GET是强一致的。如果您不需要此功能,您可以通过执行最终一致的get(如文档所述)来加快速度。

实际的挂钟时间是多少?其中有多少是重叠的?我曾经有过同样的想法。但我已经从模型中完全删除了List属性,重新创建了实体,得到了非常相似的结果,同样是7-10秒。@Zygimantas,正如我在评论中所问的,wallclock时间是多少?包括appstats跟踪的映像将是理想的。不过,获取1000个实体的速度总是相当慢的-您应该尽量减少在面向用户的请求中必须处理的实体数量。我正在制作屏幕截图,请给我一分钟。@Zygimantas我已经更新了我的答案。请编辑你的问题,包括截图,以便其他人可以从中受益-dropbox的东西往往会在一段时间后消失。最终的一致性策略标志有一点帮助。现在,按键获取50个实体需要2000毫秒而不是4000毫秒。
ID/Name|description|location|name
id=804|Sample description|54.8968721,23.892426|Sample place