转载:http://blog.csdn.net/pgbiao/article/details/22388945

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

这两天遇到一个问题令人比较郁闷,一个大概120行左右的存储过程在SQL Server2012的查询分析器里面执行,

速度非常理想,1秒不到,即可筛选抓取到大概500条数据记录。
但在C#程序代码里调用,就提示连接超时。把CommandTimeout设置为300,就要3分钟左右时间才能显示出来,
检查了几遍代码也没有发现错误。问题依旧。

原因分析:
1、由于在查询分析器里执行速度很快,并且数据量也不多。
2、只在程序里调用才有缓慢的情况。
3、设置CommandTimeout参数,就可以显示结果出来,但要很久。

综上分析,初步断定问题出在C#代码上。但检查后没有收获。

在百度上查询这方面的资料。
在CSDN论坛上终于找到类似的资料贴子。其中有一网友在回复中说“有可能是执行计划过期吧”,
真是一言惊醒梦中的我。

立即在查询分析器上执行:

exec sp_recompile @objname='存储过程名称'

exec sp_recompile @objname='存储过程名称'

再次测试程序,这次终于成功了。速度很满意。

原因分析:
由于存储过程是预编译的, 在第一次执行的时候, 会生成执行计划, 以后执行的时候, 会使用这个执行计划(除非存储过程侯或者显示指定重新编译), 而不是每次执行时都去生成执行计划。
当存储过程涉及的对象结构调整, 或者相关的数据产生了很大变化, 这可能导致原来的计划不适合当前的现状(执行计划过期), 这种情况下应该重新编译存储过程。

如果修改一次不行,可以再修改一次,再等会测试

如何解决sql server 存储过程在查询分析器快,但程序调用存储过程执行慢的问题?相关推荐

  1. SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值

    我们知道SQL SERVER建立链接服务器(Linked Server)可以选择的驱动程序非常多,最近发现使用ODBC 的 Microsoft OLE DB 驱动程序建立的链接服务器(Linked S ...

  2. 轻松掌握使用 SQL Server 浏览器,解决SQL Server 2005跨网段不能连接问题

    SQL Server Browser  作为 Windows 服务在服务器上运行.SQL Server Browser 侦听对 SQL Server 资源的传入请求,并提供计算机上安装的 SQL Se ...

  3. sql server死锁_如何解决SQL Server中的死锁

    sql server死锁 In this article, we will talk about the deadlocks in SQL Server, and then we will analy ...

  4. 如何使用SQL Server链接服务器查询Excel数据

    Linked servers allow SQL Server access to data from a remote data source. A remote data source can b ...

  5. sql 闩锁 原因_如何识别和解决SQL Server中的热闩锁

    sql 闩锁 原因 描述 (Description) In SQL Server, internal latch architecture protects memory during SQL ope ...

  6. 解决 SQL Server 中 CPU 使用率过高的问题

    本文提供了诊断和修复运行 Microsoft SQL Server 的计算机上 CPU 使用率过高导致的问题的过程. 尽管在 SQL Server 中出现 CPU 使用率过高有许多可能原因,但以下原因 ...

  7. sql server 2000 版本查询

    确定已安装的   SQL   Server   2000   Database   Components   版本           使用   isql.osql   或查询分析器,对数据库引擎实例 ...

  8. php多表查询性能优化,MSSQL_SQL Server多表查询优化方案集锦,SQL Server多表查询的优化方案是 - phpStudy...

    SQL Server多表查询优化方案集锦 SQL Server多表查询的优化方案是本文我们主要要介绍的内容,本文我们给出了优化方案和具体的优化实例,接下来就让我们一起来了解一下这部分内容. 1.执行路 ...

  9. 解决SQL Server 导入System.Web.dll程序集,报错问题

    本人由于需要做一个小项目,项目的内容是这样的:SQl Server中有个报警信息表(tb_Alarm_info),当这个报警信息表有新的数据插入时,将这个产生的报警信息发送到相关人员手机上: 解决思路 ...

  10. SQL SERVER跨服务器查询

    SQL SERVER跨服务器查询 1.执行存储过程 sp_addlinkedserver 以将服务器添加到 sys.servers. -server124为远程服务器的别名 exec sp_addli ...

最新文章

  1. 推荐几本Python电子书
  2. LeetCode Insertion Sort List(单链表插入排序)
  3. ajax插件库,03.vue-ajax、vue UI 组件库
  4. python 求连线相似度_Python分析《都挺好》中的人物关系,苏大强与蔡根花是真爱?...
  5. C# 2018.9.17
  6. [转].NET下读取PDF文本
  7. 树莓派3显示服务器SSH拒绝了密码,脚本封杀尝试树莓派SSH密码的来源IP
  8. 第一二章(PTA复习)
  9. iris数据_Python数据分析02-Iris-直方图与KDE
  10. 227 用栈模拟汉诺塔问题
  11. 易语言mysql 记录集_求一个易语言返回mysqlcha询结果记录集的例子
  12. finebi如何使用mysql_如何利用bi数据分析FineBI配置MySQL
  13. 第一部分 知己知彼
  14. matlab计算连续复利,求连续复利计算公式。。。
  15. 轻松快速安装Kubernetes dashboard
  16. Quadro P5200 - 最强大的移动工作站显卡 专门为了惠普 VR Z 背包电脑而发布
  17. AI语音机器人拿来做什么用?
  18. sql语句基础-提升
  19. “双减”下 K12 教育集体折戟,AI 会是教培行业力挽狂澜的稻草吗?
  20. 夯实基础—java关键字

热门文章

  1. MySQL的用户授权
  2. Java多用户商城系统B2B2C源码
  3. 利用Adams对单摆进行建模、仿真的动力学分析
  4. CS中mdl文件的解析
  5. 辽宁电信TY12008-Z_智能机顶盒2.0_S905MB_线刷固件包
  6. JDBC和MySQL的实现原理
  7. uml在线画图共享网站
  8. 安装QQ、TIM提示:安装包可能被非法改动导致安装失败,请从官网下载最新安装包重新安装
  9. matlab读取npy文件
  10. python项目方案书模板格式_项目策划书格式及范文