解决运行procedure很慢但运行procedure内容很快问题
所属分类:
电脑基础 / 电脑常识
阅读数:
83
收藏 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参考最新的正确的信息去制定执行计划。
新浪微博如何设置开启或取消智能排序功能
有时候我们并不需要智能排序功能,那么新浪微博的智能排序可以取消吗?本文就告诉大家新浪微博如何设置或取消智能排序,一起看看吧
收藏 0赞 0分享
T码是什么意思 天猫T码怎么抢
T码是天猫电器商城发放的商品优先购买资格码,用户获得T码后,对制定商品有优先购买权,比如之前中天天机与目前的天猫魔盒1S抢先在天猫电器商城开启预约抢购,如果你获得T码,将具备提前优先购买的权利,无需抢购
收藏 0赞 0分享
联想笔记本哪个系列比较好
这篇文章主要介绍了联想笔记本哪个系列比较好以及各系列的定位、路线介绍,需要的朋友可以参考下
收藏 0赞 0分享
SSD硬盘玩游戏的优势大不大?
固态硬盘和机械硬盘在性能上是天壤之别的,固态硬盘可以给我们带来快速的开机时间和系统响应,使用SSD玩游戏也会给我们带来一定的好处
收藏 0赞 0分享
查看更多