MS Access的SharePoint链接列表问题

问题描述 投票:0回答:1

我已经设置了超过100,000个项目(虚拟数据)的SharePoint列表。用户将一次更新此列表,完全测试不会有任何问题。在Access 2016中链接到此列表并运行任何查询时,我收到消息“ System.OutOfMemoryException”。昨天在构建和测试数据库时并没有发生这种情况,但是从今天开始却使我感到困惑。我已经尝试了一整天,并收到相同的消息。各个更新仍然可以正常工作。任何帮助将不胜感激,因为如果没有查询功能,项目将陷入困境。谢谢Nat

list ms-access sharepoint
1个回答
0
投票

我不建议对SharePoint列表和Access超出大约10,000行。我已将一个表/列表推送到80,000行。但是,那是在本地网络上,我必须设置(删除)SharePoint“默认”限制(因此,必须设置/删除50列的限制和5,000行限制的“总督”)。如果您使用的是基于云的365托管,则无法更改这些设置或限制。因此,默认列表大小设置为5,000行。 (您可以增长到5,000行以上,但是该列表的首次上传(例如,从Access中访问)必须少于5,000行,否则系统将不允许您对列表进行索引。(如果没有索引,则运行速度会更慢) 。

因此,这取决于您的SharePoint托管。但是,到SharePoint的链接访问表实际上不应超过5,000行(如果基于365云)。如果列表较大,则将起作用的应用程序类型是那些不更新大量行的应用程序类型。此问题的原因是,尽管Access具有非常好的数据“本地”缓存,甚至允许您在脱机时更新行?好吧,任何行更新都必须在本地进行,然后在SharePoint端进行。它实际上是一个“同步”系统,因此您无法执行服务器端sql(或记录集)更新。更新必须在两侧进行,因此对大数据集的更新非常慢。

对于100,000行的表?您需要使用sql server。一旦传递了大约15,000行,SharePoint列表就会出现麻烦。如果SharePoint服务器是网络上100%本地的服务器,则可以配置(删除)所有限制阈值,并且可能达到50,000行。如前所述,在本地网络和本地托管的SharePoint上,我将一个列表推到80,000行。但是如此大的行数仍在推动事情发展,我怀疑最终结果是否会带来出色的用户体验。

虽然SharePoint列表可能很大,但是只有当您说一条记录(或文档,或其他内容),对其进行更新然后保存时,此类设计才能很好地起作用。简单地使用“列表”作为某些大型表(如“ sql”数据库),效果并不理想。主要问题/原因是您无法在服务器端执行SQL更新。因此,您也许可以查询数据-SharePoint可以做到这一点。

但是列表中的许多行有大的udpates吗?没有,那根本不能很好地运作,也不能遵循SharePoint模型以及SharePoint的工作方式。

所有列表更新发生在客户端-一对一,一行一行。因此,Access将/将通过同步模型将每个更新从客户端拖到服务器。这样的更新将变得缓慢。根本没有办法在100%服务器端运行大行更新。如果您确实将一些代码共享点放在一边?好了,现在必须将每行与Access具有的列表的本地副本进行同步。因此,即使许多行的更新很快,Access现在也将尝试对大量更新进行同步-这又像乌龟一样缓慢。 (因此,即使是100%的服务器端更新速度也很慢,因为现在必须拉下每一行并根据本地表更新+同步)。在sql server中,没有本地表副本-由于没有数据必须向下同步回Access,因此瞬间会出现10行或100,000行的udpate。

我认为内存不足错误不是您的问题。您也许可以解决该问题,但是最终的更新速度将是如此之慢,以至于总体体验和可用性将不符合应用程序与此类数据进行交互的基本标准。

您没有针对如此大的更新的正确可行的体系结构。

© www.soinside.com 2019 - 2024. All rights reserved.