彻底搞懂SharePoint List Threshold(列表阈值)

原文链接:点击打开链接

SharePoint从2010版本开始,引入了一个新的功能,List Threshold(列表阈值),简单来说,这个功能允许管理员设置一个数量上限,这个数量上限就是访问列表或者文档库的时候,可以读取的item的最大数量。举一个简单的例子,如果一个list中有成千上万条数据,用户希望在一个页面中都显示出来,List Threshold将禁止这样的操作,而直接返回一个错误页面。

被List Threshold禁止的操作并不仅仅是展示数据,这只是一个最简单的情况。其他的操作,例如,假设你的List Threshold是5000,列表中有6000条item,同时你创建了一个view,只显示50条item,但是这些item通过某列(非索引列)排序。在这种情况下,事实上SharePoint必须要将6000条item排序,然后返回其中的50条。还有一种情况是,当你删除包含了大列表的一个站点的时候,也可能失败,因为SharePoint必须查询列表中的所有item,从而触发List Threshold的限制。类似的操作还有很多。

所以我们该怎么处理这样的情况呢?——到管理中心去配置一个合理的List Threshold值。

我们知道,List Threshold可以在Web Application级别配置,如果你到Web Applicaiton的Threshold配置页面你能发现这个配置”List View Threshold“,它的默认值是5000,但我们也要知道,最小值是2000,你不能设置2000以下的值。在List View Threshold配置下面,还有一个”Object Model Override“配置,这个配置如果是enabled,那将会允许”超级用户“在使用对象模型的情况下(注意只是在使用对象模型的情况下,而不是UI),获取更多的item。这个数量定义在”List View Threshold for Auditors and Administrators“这个配置选项中。

----什么是”超级用户“?---

超级用户是指Site Collection Administrator 或者Site Collection Auditor。这两个权限可以在创建Permission Policy Level的时候指定:


默认创建的两个Permission Policy Level:“Full Control”和“Full Read”是包含这两个权限的:


---------------------------------

在”List View Threshold for Auditors and Administrators“这个配置选项之下的配置项是“Daily Time Window for Large Queries”,这个选项允许指定一个时间窗口,当服务器的负载小的时候,比如夜里,你可以在这段时间中运行一些大数据量的查询而不受List Threshold的限制。需要注意的是,一旦某个查询在时间窗口中运行起来,即使时间窗口关闭,这个查询也是会继续运行直到结束的。

说了很多List Threshold的限制和配置,下面说一些例外的情况:

1.如果你是一个前端服务器(WFE)的Box Administrator(说实话我不知道什么是Box Administrator,应该是指WFE的本地管理员?),而且所请求的数据就在这个WFE上,那么你可以读取list中的所有item。

2.在对象模型中,SPList对象有一个属性“EnableThrottling”(SharePoint 2010之后的对象模型),如果将这个属性设置为False,那么你可以读取list中的所有item。

3.在使用对象模型中的“SPQuery”或者“SPSiteQuery”对象的时候,可以设置其属性“QueryThrottleMode”为“SPQueryThrottleOptions.Override”,来提高阈值到Administrator的水平,读取更多的数据。以下是一个简单的代码示例:

using (SPSite theSite = new SPSite("http://foo")) 
{
    using (SPWeb theWeb = theSite.RootWeb)
    {
        SPList theList = theWeb.Lists["My List Name"];
 
        SPQuery qry = new SPQuery();
        qry.QueryThrottleMode = SPQueryThrottleOption.Override;
 
        //set the Query property as needed to retrieve your data
 
            SPListItemCollection coll = theList.GetItems(qry);
 
            //do something with the data
    }
}

知道了以上的设置和一些影响阈值的属性,我们举一些例子来说明不同的设置对视图数据展示和查询的影响:

# 3000条item

EnableThrottling 属性值:true

默认视图:显示3000条item

List View Threshold值:2500

LIst View Threshold for Auditors and Administrators值:2800

Object Model Override:Yes

QueryThrottleMode:Override,并读取list中的所有item

用户类型列表视图对象模型
Reader没有item显示,超过阈值没有item返回,超过阈值
Super User没有item显示,超过阈值没有item返回,超过阈值
Box Admin显示3000条item返回3000条item

我们改一下“List View Threshold for Auditors and Administrators”的值:

#3000条item

EnableThrottling 属性值:true

默认视图:显示3000条item

List View Threshold值:2500

LIst View Threshold for Auditors and Administrators值:3500

Object Model Override:Yes

QueryThrottleMode:Override,并读取list中的所有item

用户类型列表视图对象模型
Reader没有item显示,超过阈值没有item返回,超过阈值
Super User没有item显示,超过阈值返回3000条item
Box Admin显示3000条item返回3000条item

我们再改一下EnableThrottling属性:

#3000条item

EnableThrottling 属性值:false

默认视图:显示3000条item

List View Threshold值:2500

LIst View Threshold for Auditors and Administrators值:3500

Object Model Override:Yes

QueryThrottleMode:Override,并读取list中的所有item

用户类型列表视图对象模型
Reader显示3000条item返回3000条item
Super User显示3000条item返回3000条item
Box Admin显示3000条item返回3000条item

再改一下设置:

#3000条item

EnableThrottling 属性值:true

默认视图:显示2500条item

List View Threshold值:2500

LIst View Threshold for Auditors and Administrators值:3500

Object Model Override:Yes

QueryThrottleMode:Override,并读取list中的所有item

用户类型列表视图对象模型
Reader显示2500条item没有item返回,超过阈值
Super User显示2500条item返回3000条item
Box Admin显示2500条item返回3000条item


以下内容是作者的经验:

1,可能会受到List Threshold影响的操作可以参考这篇文章(需要翻墙):点击打开链接

或者下载微软的文档:下载链接

其他的一些操作例如上传文档,签入文档等是不受List Threshold的限制的。


2,提升权限去处理Threshold。

在实际工作中,发现QueryThrottleMode并不管用,即使设置了,也不能提高查询的数量到管理员的水平,这种情况下可以提升权限到网站集管理员来运行CAML查询。

如果提升权限之后,还是如法满足要求获取数据,那只能是修改LIst Threshold,或者想其他的办法了。

threshold函数是一种常见的图像处理方法,用于根据预设的阈值来筛选图像中的像素点。其基本原理是将图像中的像素点与阈值进行比较,根据比较结果来确定像素点的筛选结果。 在阈值筛选过程中,像素点的像素值与阈值进行比较。若像素值大于等于阈值,则该像素点被认为是目标像素,被保留下来;若像素值小于阈值,则该像素点被认为是背景像素,会被滤除掉。通过阈值筛选,可以突出目标物体,去除背景干扰,提高图像的质量和清晰度。 使用threshold函数进行阈值筛选时,需要先确定一个合适的阈值。这个阈值可以基于图像的特性进行设定,也可以通过试验和调整得到。常见的阈值选择方法包括固定阈值、自适应阈值和全局阈值等。不同的阈值选择方法适用于不同的图像处理任务。 阈值筛选广泛应用于图像处理领域,例如图像分割、边缘提取、目标检测和图像增强等。通过合理选择和使用threshold函数,可以有效改善图像质量、提取目标特征、减少噪声干扰等。同时,阈值筛选也是其他高级图像处理算法的基础,如图像分析、形态学处理、特征提取等。 总之,threshold函数是一种基于预设阈值的图像处理方法,通过与像素值进行比较来筛选图像中的像素点。它是图像处理中常用的操作,对于图像分割、目标检测和图像增强等任务有着重要的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值