SharePoint列表与数据库表的性能

时间:2008-10-08 20:12:41

标签: sql-server performance sharepoint list

  1. 我们希望将事务数据存储在SharePoint列表中。这些列表很容易增加到100,000多个项目。
  2. 如何将查询性能与具有这些列的数据库表上的查询进行比较?
  3. 查询: 按ID选择 选择Where ColumnValue = X Group By OrderId 按日期分组

    SP列表将是6列宽:Id,Date,OrderId(Lookup),Quanity,ItemName,Title

8 个答案:

答案 0 :(得分:18)

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

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

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

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

首先(如果您拥有更昂贵的企业许可证),您拥有的业务数据目录允许您导入与列表项类似的数据库值。

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

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

答案 1 :(得分:4)

我同意上述所有评论。我对那些希望将SharePoint列表用于他们不适合的东西的客户有着丰富的经验。如果您根本不担心性能,那么SharePoint列表就不可能了。如果仅仅是出于存档的目的,并且您对数据进行不频繁的搜索,并且SharePoint搜索功能对您来说已经足够了,我可能会考虑它而不是将其解除(如果您使用的是MOSS)。

但我会仔细考虑这方面的所有方面。通过数据表单Web部件和BDC将SQL服务器数据导入SharePoint环境并不困难,但将SharePoint数据放入其他平台或应用程序更加困难。

同样,如果性能完全是一项要求,那么就不要这样做。

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

答案 2 :(得分:3)

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

在100k时,表现会“从糟糕到打击”。

这可行的唯一方法是,如果您可以将数据集分段为多个列表,每个列表少于2000个。

答案 3 :(得分:2)

当然,不建议采用这种方法。

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

答案 4 :(得分:0)

SharePoint列表会更慢。

更多开销=性能更差。

答案 5 :(得分:0)

+1否

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

答案 6 :(得分:0)

我也同意上面的人 但是 - 博客中讨论的许多性能问题都是由于未正确使用SharePoint对象模型这一事实。

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

答案 7 :(得分:0)

自己完成这项工作后,我会尽量避免使用它!这是一个雷区,特别是在大约10万行之后。

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