码迷,mamicode.com
首页 > 数据库 > 详细

SQLServer执行计划生成方式

时间:2016-03-14 13:34:36      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

说一点关于SQLServer 执行计划相关的东西吧,首先我不是DBA,这几年也做了一些关于SQL优化的东西,有一点自己理解的东西,说的不一定正确。 首先从应用程序传过来的T-SQL语句和存储过程的差异就是传过来的语句SQLServer会进行一次编译,而存储过程则是编译好的,执行时无需再次编译,等于就是一次编译多次执行,而传过来的SQL语句如果不是参数化查询的话不同的条件会生成不同的执行计划,举个栗子:SELECT * FROM dbo.Employee  WHERE ID = 1和 SELECT * FROM dbo.Employee  WHERE ID = 2 则会生成两个执行计划,等于说会把条件也作为语句存入到执行计划中,如果改为参数化查询就会只产生一个执行计划,下次在访问直接复用,之前项目中碰到过一次,由于是老项目,都是在程序中拼接SQL,时间长了就发现明明数据量不大的查询却要执行好久,通过跟踪才发现原来是执行计划存储的表过大,造成每次访问时先取相应的执行计划,从而造成性能上的浪费。

SQLServer执行计划生成方式

标签:

原文地址:http://www.cnblogs.com/qianggecoding/p/5275175.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!