打开procedure一段一段执行却没问题,执行整个procedure的内容也没问题,但是execprocedure_nm却始终有问题,下面有个不错的解决方法,大家可以参考下
问题描述:

有一次在发布系统到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参考最新的正确的信息去制定执行计划。
最新资讯
“造车三兄弟”2020财报:季度盈利、毛利首次转正是关键词

“造车三兄弟”2020财

回顾2020年,造车新势力在资本市场颇受关注。
中国队拿下口罩人脸识别世界第一!将推出全球最大公开人脸数据集

中国队拿下口罩人脸识

  在新冠疫情全球大流行的背景下,佩戴口罩几乎是所有
火箭实验室或成SpaceX最大竞争对手

火箭实验室或成SpaceX

除美国太空探索技术公司外,火箭实验室是另外一家定期进
博世砸12亿美元建车用芯片工厂:计划年底量产传感器芯片

博世砸12亿美元建车用

德国博世集团宣布将耗资10亿欧元(约12亿美元),于6月在
乘联会:特斯拉今年2月售出了18318辆中国制造的汽车

乘联会:特斯拉今年2月

乘联会数据显示,2月新能源乘用车批发销量达到10.0万辆,
QuestMobile2021“她经济”洞察报告:女性用户规模达到5.47亿

QuestMobile2021“她

随着移动互联网的深度普及,女性用户规模已达5.47亿,同比
最新文章
怎么修改cmd字体颜色? 设置cmd命令文字颜色的技巧

怎么修改cmd字体颜色?

怎么修改cmd字体颜色?cmd命令使用的时候,想要修改字体颜
电脑怎么禁止提示"这些文件可能对你的计算机有害"的弹窗?

电脑怎么禁止提示"这

电脑怎么禁止提示"这些文件可能对你的计算机有害"的弹
电脑PageUp和PageDown键可以干嘛? PageUp和PageDown作用

电脑PageUp和PageDown

电脑PageUp和PageDown键可以干嘛?电脑键盘中PageUp和Pa
电脑可以设置夜间模式吗? 电脑夜间模式的玩法

电脑可以设置夜间模式

电脑可以设置夜间模式吗?特别想要在电脑上开启夜间模式
电脑ping命令的结果怎么输出到txt文本?

电脑ping命令的结果怎

电脑ping命令的结果怎么输出到txt文本?电脑在使用ping
使用SSD硬盘空间清理 C盘爆满怎么办

使用SSD硬盘空间清理

这篇文章主要为大家介绍了使用ssd的朋友,对于c盘空间比