解决运行procedure很慢但运行procedure内容很快问题
发布时间:2014-02-21 09:34:32 作者:佚名
我要评论
打开procedure一段一段执行却没问题,执行整个procedure的内容也没问题,但是exec procedure_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参考最新的正确的信息去制定执行计划。
有一次在发布系统到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参考最新的正确的信息去制定执行计划。
相关文章
计算机存储单位有比特(bit)、字节(byte)、千字节(KB)、兆字节(MB)、吉字节(GB)、太字节(TB)、拍字节(PB)、艾字节(EB)等,今天我们几句来看看换算方法2026-03-18
Bytes/KB/MB/GB/TB/PB/EB/ZB/YB分别代表什么? 一文看懂计算机存储单位
今天我们来介绍计算机中存储容量的基本单位及换算关系,从最基本的字节开始,一直到TB级别,并解释了理论值与实际应用中的差异2026-03-18
电脑高手养成记! 2026年超详细的BIOS进入方法及设置汇总
想要深入了解和控制你的戴尔电脑吗?那就从学习如何进入BIOS界面开始吧!通过BIOS,用户可以设置系统时间、硬件配置以及启动设备等,下面我们就来看看进入bios和设置方法2026-03-10
在日常使用电脑的过程中,很多朋友都遇到过这样的问题:明明想卸载一个软件,却发现怎么也卸载不掉,下面我们来总结几种解决办法2026-02-04
C盘文件怎么转移到d盘? 将电脑C盘文档转移到D盘的多种技巧汇总
当你的C盘空间不足时,你需要采取一些措施来释放空间,随着电脑使用时间的增长,C盘可能会逐渐填满,那么,C盘满了怎么转移到D盘里面去?对于不熟悉电脑操作的用户来说,将数2026-01-14
C:\Windows\System32\drivers\etc文件夹没有hosts文件的多种解决办法
本文详细记录了一次寻找消失的hosts文件的经历,包括尝试多种方法恢复hosts文件的过程,文内介绍四种方法,都可以恢复hosts文件,详细如下2025-12-09
在编辑文字文档时,我们常常要输入各种各样的符号,本文跟大家分享一下5种常用符号输入技巧2025-11-06
是不是经常遇到朋友说屏幕亮一整夜浪费电,或者离开电脑时担心信息泄露?今天就教大家轻松设置电脑熄屏时间,省电、护屏、保隐私,快速搞定搞定2025-12-16
在日常使用电脑时,掌握运行快捷指令的方法能极大提升效率,无论是安装软件、调试系统还是快速打开程序,运行窗口都是得力助手,下面介绍几种常用打开方式,总有一种适合你2025-11-05
如果你前期给C盘分配的空间本身就很小,加上后来下载文件、安装软件等,很容易导致C盘空间紧张,这将会影响到系统运行速度和用户体验,我们有必要扩展C盘,那么电脑如何重2025-11-03












最新评论