日期:2014-05-18  浏览次数:20335 次

查询分析器中执行计划的问题
两个语句,它们在执行计划中显示的成本开销相差很小,分别是13.4 和 10.1,查询的结果完全相同(同一个问题的两种写法)。但是查询时间一个是22s左右,一个是6s左右。
我想问一下,执行计划中显示的成本开销到底是什么含义,它和查询时间有什么关系。
谢谢!

------解决方案--------------------
这个是sql server 运行的机制,数据库查询分析运行: 1基于规则优化(每次查询检查确切的语法,按照相同的计划查寻。),2基于代价优化(每次计算i/o,cpu的效率优化),sql server是按照基于代价优化查询的,成本开销指i/o,cpu的开销!
我以前看的!希望有帮助!不妨看一下sql server运行顺序!
------解决方案--------------------
将建表语句,插测试数据的语句去掉.
直接看两条语句的开销,就看到区别了.
其它的80%被其它语句占用了,所以比较两条语句开销好像差别很小.
另外,跑的快的,也不代表开销就一定小.
好比1w条记录的表变量和1w条记录的临时表.
明显表变量要快.