Domanda

Ho una query Caml che fornisce un risultato, se esiste o meno uno spalcitore. Quando faccio l'oggetto. Lo impiega circa 2SEC per la linea da eseguire.Cosa sta andando male e impiega molto tempo per eseguire la query?

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
}
.

È stato utile?

Soluzione

Quanti campi ci sono qui?È una libreria di documenti standard, o hai aggiunto dei metadati extra?Anche se è normale, tu bisogno per tirare tutti i campi in questione?Prova a modificare l'attributo del campo di vista della tua query per restituire solo le cose di cui hai bisogno.Altrimenti, stai attraversando tutte le cartelle (l'attributo "RecursiveAll" Attributo);Se hai una grande biblioteca, in particolare una con un sacco di livelli, che potrebbe durare un po '.Se d'altra parte hai una buona idea di quale cartella potrebbe essere l'oggetto, potresti prendere in considerazione il tagliare la ricerca fino a una singola sottocartella.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top