繁体   English   中英

SharePoint:检索所有列表项的有效方法

[英]SharePoint: Efficient way to retrieve all list items

我正在从包含约4000个项目的列表中检索所有项目。 但是获取所有项目似乎需要更长的时间,大约需要15到22秒。 有什么最佳方法可以在可忽略的时间内从列表中获取所有项目?
以下是我用来提取所有项目的代码:

 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);
                }
            }

通常,当检索所需的时间很长时,您将达到边界或限制。

首先,您需要测试对查询的限制,以便返回少于2000个项目,或者直到发现查询开始变慢为止。

然后,您需要查看是否可以分解查询,或者根据该图进行多次查询以获取项目。

干杯

特鲁兹

一次抓取许多物品肯定不是最佳实践或建议的方式。

您必须研究其他选项,例如

  • 列索引:与您使用的SharePoint版本有关; 评估并测试是否真的可以给您带来一些好处
  • 通过查找最适合您的数据的分组以及阈值,将提取数据查询分为多个查询。 这样,您可以并行运行查询,并可能看到性能优势
  • 使用搜索:依赖于SharePoint搜索引擎,SharePoint版本之间存在很大差异,但是可以肯定的是,与SPQuery相比,这将很快发展起来。 缺点是必须依靠搜索爬网计划来获取最新数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM