sql带参数的存储过程编译对于下次给定不同的参数值无效?

newdigitime 2010-01-07 10:46:55
SQL中的参数过程在第一次执行时会自动编译,下次使用时会直接使用此编译过的,据说会提高一点效率.

但看了一段microsoft的文档后,似乎觉得
对于带参数的存储,这种编译没多大作用?

譬如某个 存储过程 带有参数 @p1
第一次执行时 @p1值为5,编译时把这个5也带进去了.

下次执行这个存储时,如果@p1值为8,是不是就需要重新编译执行?

文档说明如下(微软的中文文档看起来总是别扭,比机器翻译的水平强不了多少):

必要时,强制重新编译存储过程的其他原因会阻碍存储过程编译的“参数查找”行为。当 SQL Server 执行存储过程时,该过程在编译时使用的任何参数值都作为生成查询计划的一部分包括在内。如果这些值就是后来调用存储过程时使用的典型值,则该存储过程在每次编译和执行时都会从查询计划中获益。否则,性能可能会受到影响。



...全文
56 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
newdigitime 2010-01-08
  • 打赏
  • 举报
回复
顶啊.请各位指点
dawugui 2010-01-07
  • 打赏
  • 举报
回复
貌似用处不大.我也不用.

帮顶.
通过慢sql分析的学习,了解什么是慢sql,以及慢SQL会引起那些性能问题。清楚慢sql日志的设置,然后再通过慢sql分析工具的学习,清楚慢sql分析的步骤和流程。慢sql分析工具:mysqldumpslow工具、explain工具、profile工具、Optimizer Trace工具。 提供课程中所使用的sql语句。 课程内容:第一章:课程简介1、课程介绍2、课程大纲 第二章:慢sql简介1、慢sql简介2、慢sql会引起的问题 第三章:慢日志的设置1、慢sql的分析流程2、慢日志参数理解3、慢日志参数设置:第1种方式:my.ini文件设置4、慢日志参数设置:第2种方式:sql脚本设置5、慢日志参数设置-效果验证 第四章:如何发现慢sql1、如何发现慢sql:第1种方式:慢日志文件2、如何发现慢sql:第2种方式:mysql库的slow_log表 第五章:慢sql分析工具1、慢sql提取-mysqldumpslow工具-使用方法2、慢sql提取-mysqldumpslow工具-操作实战3、慢sql的执行计划分析-explain分析-执行计划结果说明4、慢sql的执行计划分析-explain分析-索引介绍+type类型举例5、慢sql的资源开销分析-profile分析-分析步骤6、慢sql的资源开销分析-profile分析-show profile执行阶段说明7、慢sql的资源开销分析-profile分析-完整列表说明+操作实战8、慢sql的跟踪分析-Optimizer Trace分析-分析步骤9、慢sql的跟踪分析-Optimizer Trace表的介绍10、索引失效场景举例 第六章:慢日志清理1、慢日志清理

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧