这个问题现在有了一些新的发现。

首先,我找到了重现客户那里出现的那个复杂SQL语句的方法。这个现象其实是这样的:

  1. 当WebApplication的“List View Threshold” 数量大于 文档库中文件个数的时候,如果是非管理员的用户打开文档库,就会出现那样的SQL语句。
  2. 当“List View Threshold”数量小于文档库中文件个数的时候,如果是非管理员的用户打开文档库,会得到一个警告说文档库无法打开。而如果是管理员,就可以打开,而且SharePoint会使用另一个比较适合大数量的SQL语句(但是在数据量小的时候反而不如原来那个语句)来查询。

所以客户那里出现那个SQL 语句的原因是 “List View Threshold“调整得太大。而”List View Threshold”调大的原因,是为了让普通用户能够打开文档库。

但是其实我们有更好的办法可以在不调大“List View Threshold“(也就避免了SharePoint使用适合小数据量大SQL语句操作大数据量的文档库,从而造成性能问题)的前提下,让普通用户也打开文档。

方法是执行下面的PowerShell 脚本。

$app=Get-SPWebApplication “http://<site url>

$app.UnthrottledPrivilegedOperationWindowEnabled=$true

$app.DailyUnthrottledPrivilegedOperationsDuration=24

$app.Update()

这个脚本的目的是修改SharePoint对于大List/Library(也就是list item数量操作 List View Threshold的list )操作的一个开关。SharePoint 2013可以规定一天中某些时段允许普通用户打开大List。默认是不允许的,目的是为了整个系统的Scalability。但是在客户的这个环境中,访问这些大文档库是必须的,所以我们可以修改为一天中24个小时都能够让普通用户访问大list。

这样List View Threshold不再是限制用户访问的一个阈值,而是SQL语句优化的一个阈值。通常List View Threshold 设置5,000是比较合适的。客户那里有约30,000个文档,所以肯定会使用优化的语句。

下面的PowerShell脚本可以比较方便地修改这个值。

$app=Get-SPWebApplication “http://<site url>

$app.MaxItemsPerThrottledOperation=5000

$app.Update()

遗憾的是SharePoint这些比较高级的调优功能(应该说是设计很巧妙的),缺乏文档说明。所以很少有人知道。MSDN有关于这两些设置的字面解释,但是没有给出生动的范例来说明其用途。我们只能够通过程序的调试,从源代码中看出这些设置的实际用途。

https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebapplication.unthrottledprivilegedoperationwindowenabled(v=office.15).aspx

https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebapplication.dailyunthrottledprivilegedoperationsduration(v=office.15).aspx

https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebapplication.maxitemsperthrottledoperation(v=office.15).aspx

升级到Sharepoint 2013后页面打开速度慢的更多相关文章

  1. SharePoint 2010升级到sharePoint 2013后,人员失去对网站的权限的原因及解决方法。The reason and solution for permission lost after the upgrading

    昨天碰到了一个问题,一个网站在从SharePoint 2010升级到SharePoint 2013后,人员都不能登录了,必须重加赋权,人员才能登录,这样非常麻烦. 原因:是认证方式的问题.在Share ...

  2. 解决HTML加载时,外部js文件引用较多,影响页面打开速度问题

    解决HTML加载时,外部js文件引用较多,影响页面打开速度问题   通常HTML文件在浏览器中加载时,浏览器都会按照<script>元素在页面中出现的先后顺序,对它们依次加载,一旦加载的j ...

  3. 解决加载WEB页面时,由于JS文件引用过多影响页面打开速度的问题

    1.一般做法 一般我们会把所有的<script>元素都应该放在页面的<head>标签里,但由于是顺序加载,因此只有当所有JavaScript代码都被依次下载.解析和执行完之后, ...

  4. TroubleShoot: SharePoint 2013: ExecuteOrDelayUntilScriptLoaded 页面发布后不执行的问题

    SharePoint 2010 中的ExecuteOrDelayUntilScriptLoaded,在2013 中使用时没有效果的问题. Example: SharePoint 2013 Code: ...

  5. Effective前端2---加快页面打开速度

    1.避免head标签JS阻塞 所有放在head标签里的JS和CSS都会阻塞页面渲染.如果这些CSS和JS需要记在时间比较久,中间页面会存在一个空白期,严重影响到用户体验. 例如以下代码:在head标签 ...

  6. Asp.net项目因Session阻塞导致页面打开速度变慢

    发现罪魁祸首是Session阻塞造成的.默认情况下session状态是“可写状态”(EnableSessionState=”true”),即当用户打开任何一个页面时,该页面的Session就会持有一个 ...

  7. SharePoint 2013 解惑 无法打开文件浏览器

    你有时候会看到这东西谈出来,当你想像管理文件一样,管理SharePoint上资源的时候 意思是说,不能打开文件浏览器,请加入你的站点到信任站点,这个有两个问题,一个是IE设置,一个是WebClient ...

  8. Dynamics CRM 4.0升级Dynamics CRM 2013后全局Ribbon的修改

    最近在为一个客户在Dynamics CRM 4.0到Dynamics CRM 2013的升级,升级之后发现原来在Dynamics CRM 4.0中定义的全局Ribbon按钮像牛皮癣一样,在每个实体页面 ...

  9. SharePoint 2013 单一页面赋设计权限

    本文介绍SharePoint的使用中,断开单一页面权限,给用户编辑权限以及操作中遇到的问题,希望给相关需要的人一个参考. 1.首先进入页面库,找到我们的页面,进入共享,如下图: 2.在弹出的窗口中选择 ...

随机推荐

  1. Servlet类源码说明

    servlet是学习java web不可不懂的一个类,网上各种教程都参杂太多,每次理解都感觉像把别人吐出来的食物再放在嘴里咀嚼,小编一怒之下,直接打开源码,原汁原味的芬芳扑面而来: /** * Def ...

  2. 禅道 bug指向为数字问题解决过程

    browse.html.php <td <?php if($bug->assignedTo == $this->app->user->account) echo ' ...

  3. FoxPro 打开文件及使用SQL查询

    set exclusive off OPEN DATABASE t:\tpswin\comp1\time.dbc SHARED select empl_no,date,in, bout, bin, o ...

  4. 实战zabbix3.0.2 使用percona mysql插件监控mysql5.7

    1.系统环境 [root@shard0 templates]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.2 ...

  5. Redis 哨兵模式 带密码单机

    语法 https://segmentfault.com/a/1190000002680804 启动3台redis 6379,6380,6381 cp 多个redis.conf文件 开启daemoniz ...

  6. spring mvc请求参数中文乱码解决方案

    POST 请求 在web.xml中加上增加过滤器 <filter> <filter-name>encodingFilter</filter-name> <fi ...

  7. 17.Letter Combinations of a Phone Number(Back-Track)

    Given a digit string, return all possible letter combinations that the number could represent. A map ...

  8. 把二叉搜索树转化成更大的树 · Convert BST to Greater Tree

    [抄题]: 给定二叉搜索树(BST),将其转换为更大的树,使原始BST上每个节点的值都更改为在原始树中大于等于该节点值的节点值之和(包括该节点). Given a binary search Tree ...

  9. shiro 和spring集合 实现登录时输入验证码并校验(七)

    编写实现验证码的主体实现类:CaptchaCode import java.util.UUID; import javax.servlet.http.HttpServletRequest; impor ...

  10. mybatis总结回顾

    1.mybatis的介绍 轻量级数据持久层框架,替代hibernate 2.mybatis的入门 导包-->配置文件(类名.xml.SqlMapConfig.xml) 类名.xml:放映射.sq ...