详解用TSQL在SQL Server实现物理查询数据流
2009-04-14 10:27:40 来源:WEB开发网文本形式的执行计划输出:
|--Sort(ORDER BY:([Expr1004] ASC))
|--Filter(WHERE:([Expr1004]>(5)))
|--Compute Scalar(DEFINE:([Expr1004]=CASE WHEN [Expr1004] IS NULL THEN (0) ELSE [Expr1004] END))
|--Nested Loops(Left Outer Join, OUTER REFERENCES:([C].[CustomerID]))
|--Index Seek(OBJECT:([Northwind].[dbo].[Customers].[City] AS [C]),
SEEK:([C].[City]=N'London') ORDERED FORWARD)
|--Compute Scalar(DEFINE:([Expr1004]=CONVERT_IMPLICIT(int,[Expr1009],0)))
|--Stream Aggregate(DEFINE:([Expr1009]=Count(*)))
|--Index Seek(OBJECT:([Northwind].[dbo].[Orders].[CustomersOrders] AS [O]), SEEK:([O].
计划中的分支是交叉执行的。该示例中SQL Server交替执行嵌套循环的两个分支。
灰色箭头表示数据流,箭头的粗细表示查询优化器估计通过该连接传递的行数。
引擎先对Customers表执行索引查找,他将选择来自London的第一个消费者。可以查看此部操作的详细信息,如下图。
可以看到此步的查找谓词的前缀为:
[Northwind].[dbo].[Customers].[City] = N'London
被选择的行被传递到嵌套循环运算符,嵌套循环则会开始进行内层循环的运算。内层循环由计算标量、流聚合、索引查找组成。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››详解oracle超大数据库表分区只哈希分区表
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››详解Win8系统获取授权与降级策略
- ››sqlserver安装和简单的使用
- ››详解PHP会话存储方式
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
更多精彩
赞助商链接