如何优化 sitecore 查询?

How to optimize sitecore queries?

嗨,我知道很可能有人问过这个问题。如何提高 Sitecore 查询的查询性能。我已经安装了 dotTracer 并获得了您可以在 this 图像中看到的结果。我没有在图像中显示的方法花费了 2,551 毫秒,Sitecore 查询花费了 2,344 毫秒,这是巨大的。 我正在使用 Sitecore 7.2,我认为它们在数据库中有大约 10k 条项目记录。我们没有超过 5 个版本的每个项目。我们做的查询是:

return rootItem.Axes.SelectSingleItem(string.Format("descendant::*[@@{0}='{1}']", attributeName, attributeValue));

attributeName = TemplateName.

你对我如何优化请求有什么想法吗?

不要使用 Sitecore API 进行搜索。使用 Sitecore 搜索:

public void Search(Item rootItem, string templateName)
{
    var index = ContentSearchManager.GetIndex("sitecore_" + Sitecore.Context.Database.Name + "_index");
    using (var context = index.CreateSearchContext())
    {
        var result = context.GetQueryable<SearchResultItem>().FirstOrDefault(i => i.TemplateName == templateName && i.Paths.Contains(rootItem.ID));
        if (result != null)
        {
            Item resultItem = result.GetItem();
        }
    }
}