结果如下:
继续:
|
结果如下:
发现了吧,trival plan类型计数+1,说明优化器对select * from Test进行优化时是普通计划。
5、阶段2:检验所有可能的计划,并且选择达到检验的时间限制时开销最小的计划。
执行:这个计划被调度执行,这个涉及到SQLOS不在本篇文章讨论范围,只要先简单理解为交给CPU执行。
三、结尾
其中这个语句还有很多地方可以分析,比较在这条语句执行时,加锁以及如何被调度执行。这些还是希望在放在后面的章节中解释。这篇文章主要是谈到了SQLServer如何对SQL进行解析优化的。仔细研究,你会发现SQLServer的查询优化器做了很多优化措施当然其他数据库也类似的组件。其实你会发现这些对于我们大部分开发人员都是屏蔽的。屏蔽是一种进步,java、.net的垃圾回收屏蔽了开发人员对内存的管理,那SQLServer在这里屏蔽了什么呢,这需要研究数据库历史。只有研究历史,才能站在一个较高的角度知道现在的数据库为什么是现在的样子。
今天分析就到此结束,文中如有描述不当的地方,欢迎指出。共同进步才是硬道理。