SQL参数化查询的另一个理由——命中执行计划
1概述SQL语言的本质就是一串伪代码,表达的是做什么,而不是怎么做的意思。如其它语言一样,SQL语句需要编译之后才能运行,所以每一条SQL是需要通过编译器解释才能运行的(在这之间还要做SQL的优化)。而这些步骤都是需要运行成本,所以在数据库中有一个叫做执行计划的东西,编译器会将编译过后的SQL存入执行计划当中,当遇到同样的SQL时,就直接调用执行计划来执行,而不需要再次编译。
通过对上面执行计划的认识,为了提高数据库运行的效率,我们需要尽可能的命中执行计划,这样就可以节省运行时间。
2相关SQL
2.1查看当前数据库中所有的执行计划:
http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifView Code <div id="cnblogs_code_open_0df13b42-08bb-481f-959f-9b99079563f0" class="cnblogs_code_hide">SELECT cp.usecounts AS '使用次数' ,objtype AS '类型' ,st.[text] AS 'SQL文本' ,plan_handle AS '计划句柄' FROM sys.dm_exec_cached_plans cpCROSS APPLY sys.dm_exec_sql_text(plan_handle) AS stWHERE st.text not like '%sys%'
页:
[1]