SharePoint一个list里面的item数量超过5000会提示“视图无法显示,因为超过管理员限制设定的列表视图阈值”
在CSDN里面有比较好的解决方案,在这里先记录下来,以后有用
方案一,定期自动归档
不用写TimerJOb, 可以用contenttype的retention进行设置移动和过期策略。
1. 点击Library Settings
2. 如果没有启动“管理content Type”, 先启动起来
3. 进入文档库使用的content type,->Information policy
4.设置过期和移动策略:可以通过比较时间移动/也可以通过某个状态移动等等等。
方案二,为视图设置过滤条件
5000这个阈值的设置主要是防止数据库性能损耗(SQL Server在查询的时候会判断如果一次返回结果超过5000左右,会将整张表锁定,返回后再解锁;而SharePoint的数据存储结构是同一个内容数据库中的所有列表都在一张表中,整张表锁定会影响其他列表/文档库的读取性能),于是从2010开始设置了5000这个默认的阈值(当然是可以调整的,楼上也给过方法)
解决办法基本上有如下几种:
1、定期归档,楼上也给过方案了,可以使用SharePoint内置的文档策略进行归档;如果不够或者是Foundation,也可以自己写TimerJob或者计划任务来做;
2、使用文件夹,这个阈值限制只是当前文件夹内的所有条目数量,所以合理规划文件夹也可以解决这个问题;
3、使用视图的筛选条件,可以把默认视图加一个筛选条件,并把第一个筛选条件用到的字段开启索引(在列表设置界面中),SharePoint读取视图条目的时候,会根据第一个字段(需要加索引)进行一次预判,如果在这个字段筛选后总数不超过5k也可以正常显示