Question

J'ai une requête CAML qui fournit un résultat si un Spfolder existe ou non. Quand je fais l'article.Compte, il prend environ 2 secondsibles pour que la ligne soit exécutée.Qu'est-ce qui ne va pas et prenait longtemps pour exécuter la requête?

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
}

Était-ce utile?

La solution

Combien de champs sont ici?Est-ce une bibliothèque de documents standard ou avez-vous ajouté des métadonnées supplémentaires?Même si c'est normal, faites-vous besoin pour tirer tous les champs en question?Essayez de modifier l'attribut Viewfields de votre requête pour ne renvoyer que les trucs dont vous avez besoin.Sinon, vous parcourez tous les dossiers (l'attribut "recarsIserAll");Si vous avez une grande bibliothèque, en particulier une avec beaucoup de niveaux, cela pourrait bien prendre un certain temps.Si d'autre part, vous avez une bonne idée de quel dossier l'élément peut être utilisé, vous pouvez envisager de réduire la recherche à un seul sous-dossier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top