2015-05-14 2 views
0

Я извлекаю все элементы из списка, содержащего около 4000 элементов. Но, кажется, требуется больше времени для извлечения всех предметов, которые составляют от ~ 15 до ~ 22 секунд. Есть ли лучший способ получить все предметы из списка в незначительное время?
Ниже приводится код, я использую, чтобы извлечь все элементы:SharePoint: эффективный способ извлечения всех элементов списка

using (SPSite spSite = new SPSite(site)) 
      { 
       using (SPWeb web = spSite.OpenWeb()) 
       { 
        list = web.Lists["ListName"]; 
        SPQuery query1 = new SPQuery(); 
        string query = "<View>"; 
        query += "<ViewFields>"; 
        query += "<FieldRef Name='ID' />"; 
        query += "<FieldRef Name='Title' />";      
        query += "</ViewFields>"; 
        query += "<Query>"; 
        query += "<Where>"; 
        query += "<Eq>"; 
        query += "<FieldRef Name='ColName'></FieldRef>"; 
        query += "<Value Type='Boolean'>1</Value>"; 
        query += "</Eq>"; 
        query += "</Where>"; 
        query += "</Query>"; 

        query += "</View>"; 
        query1.Query = query; 
        SPListItemCollection listItems = list.GetItems(query1); 
       } 
      } 
+0

Я думаю, что с использованием запроса CAML я бы смог наилучшим образом получить список элементов. –

+0

Да, это лучший способ, но это занимает слишком много времени. Знаете ли вы какое-либо обходное решение для сокращения времени приема? – Ashish

+0

Какую версию sharepoint вы используете в 2007 году? – Truezplaya

ответ

0

Обычно, когда он принимает это долго, чтобы получить элементы вы ударяете границы или предела.

Прежде всего, вам нужно проверить предел вашего запроса, поэтому вы возвращаете менее 2000 элементов или пока не найдете, когда он начнет становиться невероятно медленным.

Затем вам нужно выяснить, можете ли вы разбить свой запрос или выполнить несколько запросов, чтобы получить свои предметы в зависимости от этой цифры.

Приветствия

Truez

0

Fetching много элементов в одном кадре, это точно не лучшей практики, или предложенным способом.

Вы должны смотреть на альтернативные варианты, как индексы

  • Колонка: связанные с версией SharePoint, которую вы используете; оценивать и тестировать, действительно ли могут дать некоторые преимущества в вашем случае.
  • Разделить выборки данных в несколько запросов, найдя группу по наилучшим для ваших данных и вместе с порогом. Таким образом, вы можете запускать запросы параллельно и, вероятно, видеть преимущества производительности.
  • Использование поиска: полагайтесь на поисковую систему SharePoint, совершенно другую версию SharePoint, но, безусловно, это приведет к быстрому сверлению по сравнению с SPQuery. С недостатками, связанными с необходимостью полагаться на расписания поиска для получения актуальных данных
Смежные вопросы