Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
Plone 我可以使用ZCatalogs查询计划优化目录查询吗?_Plone_Zope - Fatal编程技术网

Plone 我可以使用ZCatalogs查询计划优化目录查询吗?

Plone 我可以使用ZCatalogs查询计划优化目录查询吗?,plone,zope,Plone,Zope,我想知道是否可以利用门户目录上的查询报告和查询计划选项卡提供的信息。我可以基于查询报告优化ZCatalog查询吗?ZCatalogs查询计划与SQL数据库的查询计划有何不同?查询计划信息用于提高目录性能,但您无法根据计划信息优化自己的查询 目录仅根据您的索引大小根据需要构建该信息;与SQL数据库不同,目录不会根据这些信息规划每个查询,而是从“查询计划”选项卡中反映的结构中查找预先计算的计划 “查询报告”选项卡确实为您提供了有关哪些索引在代码中表现不佳的信息;您可能需要重新思考使用这些索引组合的代

我想知道是否可以利用门户目录上的查询报告和查询计划选项卡提供的信息。我可以基于查询报告优化ZCatalog查询吗?ZCatalogs查询计划与SQL数据库的查询计划有何不同?

查询计划信息用于提高目录性能,但您无法根据计划信息优化自己的查询

目录仅根据您的索引大小根据需要构建该信息;与SQL数据库不同,目录不会根据这些信息规划每个查询,而是从“查询计划”选项卡中反映的结构中查找预先计算的计划

“查询报告”选项卡确实为您提供了有关哪些索引在代码中表现不佳的信息;您可能需要重新思考使用这些索引组合的代码和/或研究这些索引性能不佳的原因;可能您的查询没有足够快地限制结果,或者慢速索引非常大,这表明您的ZODB缓存太小,无法容纳该大索引,或者其他结果不断将其推出

总的来说,对于大型应用程序,最好保留查询计划;在一个项目中,我们在停止实例之前转储缓存信息,并在再次启动后重新加载,其中包括目录查询计划:

plan = site.portal_catalog.getCatalogPlan()
with open(PLAN_PATH, 'w') as out:
    out.write(plan)
装载时:

if os.path.exists(PLAN_PATH):
    from Products.ZCatalog.plan import PriorityMap
    try:
        PriorityMap.load_from_path(PLAN_PATH)
    except Exception:
        pass