解决运行procedure很慢但运行procedure内容很快问题

所属分类: 电脑基础 / 电脑常识 阅读数: 45
收藏 0 赞 0 分享
问题描述:

有一次在发布系统到production环境之后,突然发现报表过了好几分钟也刷新不出来,小哥我直接就慌神了。迅速进行各种测试,首先右键报表属性找出报表地址,看看参数是否传对了。找出报表参数之后直接运行procedure,也跑不出来。打开procedure一段一段执行却没问题,执行整个procedure的内容也没问题,但是exec procedure_nm却始终有问题。在开发环境execute procedure,也没问题。于是,开始纠结了。

环境:SQL SERVER 2008, SSRS 2008

解决过程:

仔细思考production环境和开发环境的不同,无非就是开发环境是新搭建的环境,production是已经存在好几年的环境,这次只是对其报表producdure进行了改变,并打了一个补丁修改之前半年的历史数据。后来发现这里就是引起这次事情的主要原因。通过不断的查找问题,发现了开发环境和production里面的表统计信息(在SQL SERVER里面左侧目标浏览器中展开表之后的最下面一个项目:Statistics)不一样。当时只是一个猜测,大量跟新数据会引起production的统计信息过时,而SQL SERVER引擎在解析procedure的时候会根据统计信息制定一系列数据检索计划,就像以前从A市到B市有一条高速公路,现在这条高速公路没用了,SQL SERVER引擎就去寻找其他笨的方法,而统计信息的自动更新只会发生在夜深人静之时。所以便尝试着去申请手动更新production的统计信息。统计信息更新之后,报表能够正常打开了。

解决方法:

USE Database_nm

EXEC sp_UpdateStats

结论:

在大量更新数据之后,会使数据库的统计信息发生变化,继而影响SQL SERVER对SQL的解析。需要重新更新数据库的统计信息,让SQL SERVER参考最新的正确的信息去制定执行计划。
更多精彩内容其他人还在看

XP与Win7共享打印机的详细设置方法(图文教程)

办公室里经常要很多人共享一个打印机.但每个人的系统可能会有同,有的是XP,有的是WIN7.那应该如何设置呢
收藏 0 赞 0 分享

上网本装系统的详细方法介绍(图文教程)

上网本怎么样装系统呢
收藏 0 赞 0 分享

苹果iPad平板的使用小技巧(图文攻略)

ipad由于使用方法.便携.现在越来越多的人使用它.下面介绍一些小技巧.
收藏 0 赞 0 分享

笔记本连接无线网络的详细步骤(图文教程)

有的笔记本需要设置一下才能连的
收藏 0 赞 0 分享

Chrome谷歌浏览器苹果iPad版界面细节体验(图文)

谷歌浏览器最近也出了ipad版了.让我们看一下怎么样吧
收藏 0 赞 0 分享

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'

电脑蹦出这个错误 '80040e21',是啥意思
收藏 0 赞 0 分享

BITS服务系统找不到指定的文件的解决办法

使用windows update的时候可以找到补丁,但开始下载补丁就直接停止,补丁没有下载。查看服务,发现缺少BITS服务,安装后无法启动,问题来了就来解决它吧。
收藏 0 赞 0 分享

服务器上通过PHP代码解决DDOS的方法

通过PHP代码进行DDOS已经不是什么新鲜事了,其特征是用PHP代码调用sockets,直接用服务器的网络攻击别的IP。
收藏 0 赞 0 分享

AirPlay无线技术的详细介绍

AirPlay无线技术是由美国苹果公司推出的无线技术
收藏 0 赞 0 分享

PoE是什么 PoE的详细介绍

经常听说什么PoE,那到底是什么意思呢
收藏 0 赞 0 分享
查看更多