6
  1. 我们希望将事务数据存储在 SharePoint 列表中。列表将轻松增长到 100,000 多个项目。
  2. 查询性能如何与具有这些列的数据库表上的查询进行比较?

查询:按 Id 选择 Select Where ColumnValue = X Group By OrderId Group By Date

SP 列表将有 6 列宽:Id、Date、OrderId(查找)、Quantity、ItemName、Title

4

8 回答 8

18

不要这样做。SharePoint 不擅长处理事务数据,并且表现不佳。

您可能必须在数据库级别提高性能的任何能力(如添加索引)都可能对 SharePoint 安装产生不利影响(尽管可以通过 SharePoint 对列表中的列进行“索引”。

本质上,SharePoint 是为特定目的(内容/文档)而设计的,试图让它做一些与众不同的事情意味着您必须与应用程序作斗争。

幸运的是,SharePoint 有多种方法可以将事务数据集成到其中。

首先(如果您拥有更昂贵的 Enterprise 许可证),您拥有 Business Data Catalog,它允许您导入类似于列表项的数据库值。

如果您没有企业许可证,我可以推荐自定义控件/webpart 或数据视图 Web 部件,以允许在 SharePoint 中的相关页面上“显示”该数据。

总而言之:与在传统数据库应用程序中托管数据并集成到 SharePoint 的其他应用程序设计相比,您将通过在 SharePoint 中存储事务数据来为自己做很多不必要的工作。

于 2008-10-08T20:45:55.953 回答
4

我同意上述所有评论。我有丰富的客户经验,他们希望将 SharePoint 列表用于他们不适合的事情。如果您完全担心性能,那么 SharePoint 列表就不是好办法。如果只是出于存档目的,并且您不经常对数据进行搜索,并且 SharePoint 搜索功能对您来说就足够了,我可能会考虑它并且不会立即将其忽略(如果您使用的是 MOSS)。

但我会仔细考虑这方面的所有方面。通过 Data Form Web Parts 和 BDC 将 SQL server 数据导入 SharePoint 环境并不太难,但将 SharePoint 数据导入其他平台或应用程序则比较困难。

再说一次,如果性能完全是一个要求,那就不要这样做。

有关 SharePoint 可扩展性和性能最佳实践的更多信息,请参阅: http ://technet.microsoft.com/en-us/library/cc287790.aspx

于 2008-10-09T01:20:15.353 回答
3

经验法则是出于性能原因将 SharePoint 列表限制为 2000 个项目。

在 100k 时,性能会“从吸到吹”。

唯一可行的方法是将数据集分割成多个列表,每个列表少于 2000 个。

于 2008-10-09T03:54:03.343 回答
2

当然,建议的方法是不推荐的。

但是,作为主题,这里是 WSS 中大型列表性能的好文档

于 2009-06-27T07:35:12.937 回答
0

SharePoint 列表会变慢。

更多开销=更差的性能。

于 2008-10-08T20:17:00.397 回答
0

+1 没有

SharePoint 的主要功能是协作。在您的情况下,您只需将数据列为只读。在您的情况下,我建议将数据存储到 SQL DB 中,如果您需要在 SharePoint 门户中显示它,您可以使用 BDC 或 Bamboo Data View Web 部件之类的东西。http://store.bamboosolutions.com/p-71-data-viewer-web-part.aspx

于 2008-10-08T23:06:56.310 回答
0

我也同意上述人的观点但是 - 博客中讨论的许多性能问题是由于 SharePoint 对象模型没有正确使用。

您可以在 dynaTrace 博客上查看我关于 SharePoint 列表性能的博客系列。本系列研究 SharePoint 对象模型以突出显示 SharePoint 服务器和内容数据库之间的实际情况

于 2009-01-23T13:29:38.983 回答
0

我自己做了这个,我会说如果可能的话尽量避免它!这是一个雷区,尤其是在大约 100,000 行之后。

最终也可能会咬你的东西是,搜索爬虫可以开始超时尝试爬取非常大的列表 - 你可以增加超时,但这是一场失败的战斗的开始。

于 2009-08-14T02:39:36.053 回答