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

首先,我找到了重现客户那里出现的那个复杂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. MVC框架介绍

    第一,建立一个解决方案然后在该解决方案下面新建mvc空项目. 第二,下面先对该项目的一些文件进行介绍: MVC项目文件夹说明: 1.(App_Data):用来保存数据文件,比如XML文件等 2.(Ap ...

  2. Python实践练习:正则表达式查找

    题目 编写一个程序,打开文件夹中所有的.txt 文件,查找匹配用户提供的正则表达式的所有行.结果应该打印到屏幕上. 代码 #!/usr/bin/python # -*- coding: UTF-8 - ...

  3. VS2010生成的文件在别的机器上运行提示“丢失MSVCR100D.dll”<转>

    用vs2010编写的程序经常会发生的一个问题.在自己的机器上运行的好好的,但是在别的机器上就会发生没有找到MSVCR100D.dll.这是 个很头疼的问题.对于一些代码量几百行的小程序,我不可能要求其 ...

  4. 【python】 time模块和datetime模块详解 【转】

    一.time模块 time模块中时间表现的格式主要有三种: a.timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b.struct_time时间元组,共 ...

  5. Dubbo Overview

    Overview Architecture Provider: 暴露服务的服务提供方. Consumer: 调用远程服务的服务消费方. Registry: 服务注册与发现的注册中心. Monitor: ...

  6. testng参数化(提供测试数据)

    testng提供测试数据的两个注释:@DataProvide和@Parameter   一.通过testng.xml中设置参数 (实际上testng.xml只是一个名字,可以起任何一个名字,只要是.x ...

  7. ubuntu ufw防火墙

    由于LInux原始的防火墙工具iptables过于繁琐,所以ubuntu默认提供了一个基于iptable之上的防火墙工具ufw. ubuntu 9.10默认的便是UFW防火墙,它已经支持界面操作了.在 ...

  8. VUE递归树形目录(vue递归组件)的使用

    1.html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" ...

  9. 存储过程返回update结果集和insert主键

    update teacher set name ='111' where id in(286,289);print @@rowcount;--或select将查出,是@@rowcount,不是@row ...

  10. 323. Number of Connected Components in an Undirected Graph按照线段添加的并查集

    [抄题]: Given n nodes labeled from 0 to n - 1 and a list of undirected edges (each edge is a pair of n ...