Как повысить производительность при вставке элементов списка с помощью веб-служб Sharepoint - PullRequest
1 голос
/ 22 июня 2010

Есть ли у кого-нибудь рекомендации, как повысить производительность функции UpdateListItems (в пределах Lists.asmx)

Я обнаружил, что вставка нового элемента занимает около 1-2 секунд, это нормально?

Вот код, который я запускаю внутри цикла, который выполняется около 1000 раз

Dim xmlDoc As New System.Xml.XmlDocument()
Dim query As System.Xml.XmlElement = xmlDoc.CreateElement("Batch")

query.SetAttribute("OnError", "Return")
query.SetAttribute("ListVersion", "1")

query.InnerXml = "<Method ID='1' Cmd='New'>" & _
                 "<Field Name='FieldName'>" & FieldData & "</Field>" & _
                 "</Method>"

Dim Result As XmlElement = L.UpdateListItems("List Name", query)

Заранее спасибо!

1 Ответ

1 голос
/ 23 июня 2010

Вы можете сделать несколько обновлений за один вызов веб-службы - то есть вызвать обновление вне цикла.

Таким образом, вы можете отправить UpdateListItems следующим образомкоторый обновит 2 записи в пакете.

<Batch OnError="Continue" ListVersion="1" 
ViewName="270C0508-A54F-4387-8AD0-49686D685EB2">
   <Method ID="1" Cmd="Update">
      <Field Name="ID">4<Field>
      <Field Name="Field_Name">Value</Field>
   </Method>
   <Method ID="2" Cmd="Update">
      <Field Name="ID" >6</Field>
      <Field Name="Field_Name">Value</Field>
   </Method>
</Batch>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...