Производительность: запрос CAML, который занимает много времени, чтобы загрузить или что-то еще

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/97820

Вопрос

У меня есть запрос CAML, который обеспечивает результат, если SPFALDER существует или нет. Когда я делаю item.Count, требуется около 2 секунд для линии для выполнения.Что происходит не так и занимает много времени, чтобы выполнить запрос?

SPQuery query = new SPQuery();
query.Query = "<Where><And><Eq><FieldRef Name='LinkTitle'/><Value Type='Text'>" +         folderName + "</Value></Eq><Eq><FieldRef Name='FSObjType'/><Value Type='Lookup'>1</Value></Eq></And></Where>";
query.ViewAttributes = "Scope=\"RecursiveAll\"";

//Retrieve the items based on Query                
SPListItemCollection items = list.GetItems(query);
                                //if (!folderExists)
if (items.Count == 0)
{
//Operation
}
.

Это было полезно?

Решение

Сколько месторождений здесь?Это стандартная библиотека документов, или вы добавили несколько дополнительных метаданных?Даже если это нормально, вы нужно , чтобы потянуть все поля полей?Попробуйте изменить атрибут ViewFields вашего запроса, чтобы вернуть только то, что вам нужно.В противном случае вы проходите все папки («recursiveall» атрибут охвата);Если у вас есть большая библиотека, особенно одна с множеством уровней, что вполне может занять некоторое время.Если с другой стороны, у вас есть хорошее представление о том, в какой папке элемент может быть включен, вы можете рассмотреть возможность разрезания поиска до одной подпапки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top