Общая архитектура вопрос в Sitecore Sitecore 6 ...«Последние» Пункт
Допустим, мы имеем ситуацию, когда у нас есть 10000 пунктов, реализующего «Пресс-релиз» шаблон. Эти элементы хранятся в Sitecore по адресу /sitecore/content/home/press/*
. На нашей домашней странице мы хотели бы отобразить некоторую информацию о 3 последних пресс-релизах.
Мы ищем построить что-то эквивалентное SQL-х:
SELECT TOP 3 * FROM PressReleases ORDER BY ReleaseDate
Чтение через документацию запроса Sitecore, это звучит, как большинство из этого запроса должны быть обработаны в нашем C# приложение. Что-то вроде:
public Item[] GetRecentPressReleases()
{
string query = "/sitecore/content/home/press/*";
Item[] items = Sitecore.Context.Database.SelectItems(query);
Array.Sort(items, new PressReleaseDateComparer());
return items.Take(3).ToArray();
}
Казалось бы, что нагрузка 10000 Sitecore элементы из базы данных в память, а затем сортировка их каждый раз, когда наша домашняя страница попала бы неприемлемо с точки зрения производительности.
Есть ли более эффективный способ выразить этот запрос? Или мне следует сосредоточиться на кэшировании и/или предварительном вычислении?
Пожалуйста, обновите эти ссылки. – 2010-11-15 15:23:59
@Alexy: ваша ссылка не работает. – 2010-12-09 21:54:18