SELECT A.*, B.* FROM A INNER JOIN B ON A.ID = B.ID WHERE A.X = ‘SomeValue‘
这个查询告诉数据库:
我们只是通过SQL语句描述我们想要从数据库查询的结果, 没有告诉SQL Server怎样执行这个查询,怎样处理请求数据.
所以SQL Server需要一个物理的执行计划来决定怎样一步一步的检索或改变数据. 而执行计划就是查询优化器用来处理数据的策略.
用我们真实的生活举个例子,比如我们想从一个城市去另一个城市旅行,我们说从伦敦去往巴黎,这是一个逻辑的表达,要实现这个旅行有多个选择:
你现在的工作就是找到其中一种方式,比如乘坐飞机. 查询优化器也是做的同样的工作,它会挑出一个满足查询而又开销最小的执行计划.
在查询空间里找到足够好的执行计划是查询优化器的挑战, 而当查询包含的表和索引非常多的时候,查询空间也会变的异常巨大.
原文:http://www.cnblogs.com/alphaqcode/p/5099477.html