SSRS Reports 2008性能优化案例二
前几天一同事反映海外工厂A的SSRS报表比较慢,让我检查优化一下。于是我检查了下2015-07-13到2015-07-15 12:00这段时间报表的耗时记录
USE [ReportServer];
GO
SELECT C.Name AS ReportName
,E.ReportID AS ReportID
,E.UserName AS UserName
,E.Format AS Format
,E.Parameters AS Parameters
,E.TimeStart AS TimeStart
,E.TimeEnd AS TimeEnd
,E.TimeDataRetrieval*1.0/1000 AS TimeDataRetrieval
,E.TimeProcessing*1.0/1000 AS TimeProcessing
,E.TimeRendering*1.0/1000 AS TimeRendering
,DATEDIFF(SECOND, TimeStart, TimeEnd)
AS CostTime
FROM ReportServer.dbo.ExecutionLog E WITH(NOLOCK)
INNER JOIN ReportServer.dbo.Catalog C WITH(NOLOCK)ON E.ReportID = C.ItemID
WHERE E.TimeStart > CAST('2015-07-13 00:00' AS DATETIME)
AND E.TimeStart <= CAST('2015-07-15 12:00' AS DATETIME)
ORDER BY TimeStart DESC
如上所示,我当时初步一看(没有细看),SSRS的速度还可以啊, 因为SSRS一般2~3秒的速度相当不错了,当时也很忙,我就直接回复该同事说SSRS性能没有问题,后面他邮件回复我说,SSRS的报表有时候很不正常,有时耗费比较长的时间,如上所示,有时候需要耗费10~12秒,严重影响了他那边的应用程序(应用程序调用SSRS);他还用我上面的脚本对比了海外工厂B的SSRS报表速度,发现那个工厂的SSRS报表的速度几乎为2秒,这才引起我的注意。从查询的记录来看,SSRS报表的SQL语句取数并没有耗费多少时间,报表基本上都耗费在TimeProcessing和TimeRending上,也就是说时间耗费在处理报表以及呈现报表上。但是为什么会这样不稳定呢? 刚开始我也有点纳闷!后来我想检查一下服务器的配置信息,但是又没有权限,同事找当地的系统管理员,系统管理员帮忙在他电脑用VNC登录服务器,然后他通过Lync共享桌面给我,检查的时候,突然发现一个雷死人的事情,该服务器CPU只分配了两核,对,你没有看错。如下截图所示,有时候CPU利用率就会突然彪增到100%, 持续一分钟左右又会降下来。而SSRS如果在那个时候调用的话,处理报表和呈现报表的时间就会突然增加。导致SSRS呈现报表需要非常长的时间。很明显该服务器在CPU资源上存在瓶颈,于是邮件通知当地系统管理员以及这边的几位老大关于这个问题。让海外工程的系统管理员增加CPU资源。
服务器增加了CPU资源,由原来的2核增加到4核后,我第二天去检查时,发现SSRS报表的速度明显有所改善,如下所示。这样的案例真是有点匪夷所思,我只能呵呵了。哎!
SSRS Reports 2008性能优化案例二的更多相关文章
- SSRS Reports 2008性能优化案例
我们的一个Reporting Service服务上部署了比较多的SSRS报表,其中有一个系统的SSRS报表部署后,执行时间相对较长,加之供应商又在ASP.NET页面里面嵌套了Reporting Ser ...
- 老李案例分享:Weblogic性能优化案例
老李案例分享:Weblogic性能优化案例 POPTEST的测试技术交流qq群:450192312 网站应用首页大小在130K左右,在之前的测试过程中,其百用户并发的平均响应能力在6.5秒,性能优化后 ...
- SQL性能优化案例分析
这段时间做一个SQL性能优化的案例分析, 整理了一下过往的案例,发现一个比较有意思的,拿出来给大家分享. 这个项目是我在项目开展2期的时候才加入的, 之前一期是个金融内部信息门户, 里面有个功能是收集 ...
- Android性能优化案例研究
译 者前言: 这是Google的Android开发工程师Romain Guy刊登在个人Blog上的一篇文章.Romain Guy 作为Android图形渲染和系统优化的专家,是Android 4.1中 ...
- js-jQuery性能优化(二)
5.数组方式使用jQuery对象 使用jQuery选择器获取结果是一个jQuery对象.然而,jQuery类库会让你感觉正在使用一个定义了索引和长度的数组.在性能方面,建议使用简单的for或者whil ...
- 详解MySQL性能优化(二)
http://www.jb51.net/article/70530.htm 七.MySQL数据库Schema设计的性能优化高效的模型设计 适度冗余-让Query尽两减少Join 大字段垂直分拆-sum ...
- 浅谈前端性能优化(二)——对HTTP传输进行压缩
1.前端性能优化的一点: 对js.css.图片等进行压缩,尽可能减小文件的大小,减少文件下载的时间,从而减少网页响应的时间. 2.前端性能优化的另一点: 对HTTP传输进行压缩,即在js,css.图片 ...
- mysql的性能优化案例
在一次项目实现中,以前写了个程序,将在txt文件中的电话号码和对应的类型往数据库中插入,小数据量的情况下,用个数组遍历循环的方式,很容易解决,但是当数据量一下 但是,几十万个电话一次性插入,就变得耗时 ...
- 云时代架构阅读笔记二——Java性能优化(二)
承接上文Java性能优化(一)https://www.cnblogs.com/guo-xu/p/11019267.html 4)尽量确定StringBuffer的容量 在说和这个标题相关之前,先说一下 ...
随机推荐
- java 线程池ThreadPoolExecutor 如何与 AsyncTask() 组合使用。
转载请声明出处谢谢!http://www.cnblogs.com/linguanh/ 这里主要使用Executors中的4种静态创建线程池实例方法中的 newFixedThreadPool()来举例讲 ...
- h5直播开发之旅总结
前言 关于直播,有很多相关技术文章,这里不多说. 作为前端,我们比较关心我们所需要的. 直播的大致流程: APP端调用摄像头 -> 拍摄视频 -> 实时上传视频 -> 服务器端获取视 ...
- 初次体验百度eCharts遇到的问题和解决方法
前言 上周在厌烦Highchart下,体验了下百度的eCharts,支持IE6.7.8+外,对数据在线编辑还有工具栏支持,体验时遇到了几个小问题,最近两天在尝试得到了一个解决方法. Tooltip时单 ...
- 代码的坏味道(3)——基本类型偏执(Primitive Obsession)
坏味道--基本类型偏执(Primitive Obsession) 特征 使用基本类型而不是小对象来实现简单任务(例如货币.范围.电话号码字符串等). 使用常量编码信息(例如一个用于引用管理员权限的常量 ...
- asp.net MVC helper 和自定义函数@functions小结
asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的切换,大大提升了我们的开发效率.但是Razor语法还是有一些棉花糖值得我们了解一下,可以更加强劲的提升我们 ...
- javascript作用域中令你意想不到的问题
大多数类c的语言,由一对花括号封闭的代码块就是一个作用域.但是javascript的作用域则是通过函数来定义.在一个函数中定义的变量只对这个函数内部可见,我们称为函数作用域. 1.在函数中引用一个变量 ...
- Xamarin.Android和UWP之MVVM的简单使用(二)
0x01 前言 前面一篇,Xamarin.Android和UWP之MVVM的简单使用(一),主要讲了MvvmLight的简单使用 这篇主要讲讲MvvmCross的简单使用,例子的话,还是和上篇的一样. ...
- [Access] C# 通过 COM 组件访问 Access 文件
说明: 1,采用 dynamic 调用 COM 组件,适用于 .NET 4.0 以上支持 dynamic 版本的才可以: 2,执行速度不敢恭维,只是因为要用于 Silverlight OOB 模式中才 ...
- jquery 和 css 属性
offset()获取标签离左上角的位置,离顶部和左部的距离.离整个屏幕的左上角的距离. position() 相对于某一个标签的位置.离父标签的距离.离父标签的左上角的距离. height(), wi ...
- linux lin命令
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件. 当我们需要在不同的目录,用到相同的 ...


