SQL Server 执行计划操作符详解(1)——断言(Assert)

前言:

 

很多很多地方对于语句的优化,一般比较靠谱的回复即使——把执行计划发出来看看。当然那些只看语句就说如何如何改代码,我一直都是拒绝的,因为这种算是纯蒙。根据本人经验,大量的性能问题单纯从语句来看很难发现瓶颈,同一个语句,由于环境的不同,差距非常大,所以比较合适的还是分析执行计划。

那么对于执行计划,一般使用图形化执行计划就差不多了,但是用过的人也有一些疑惑,里面的图标(称为操作符)并不非常直观。所以从本文开始,会整理一些不怎么常见但由比较重要的操作符并进行解释,对于那些表扫描、索引扫描、聚集索引扫描、索引查找、聚集索引查找这些非常常见的操作符,暂时不打算介绍。

只有了解一些重要且常见的操作符,才能对语句进行准确有效的性能分析和优化。

本系列文章预计包含下面操作符:    

  1. 断言:Assert (英文版本图形化界面的名字,中文版本中XML格式的执行计划和TEXT格式的执行计划的名字。下同)    
  2. 串联:Concatenation   
  3. 计算标量:Compute Scalar  
  4. 键查找:Key Lookup      
  5. 假脱机:Spools      
  6. 表假脱机:Lazy Spool   
  7. 索引假脱机:Index Spool      
  8. 行计数假脱机:Row CountSpool
  9. 流聚合:Stream Aggregate  
  10. 排序:Sort     
  11. 合并联接:Merge Join 
  12. 合并间隔:Merge Interval   
  13. 拆分、折叠:Split,Collapse

 接下来从断言开始介绍。原文出处:http://blog.csdn.net/dba_huangzj/article/details/50261747


断言:


Assert运算符是一个物理运算符。在执行计划中,如果为中文版图形化执行计划,被称为“断言”,在英文版及非图形化执行计划中显示为Assert。

其图标为:Assert 运算符图标

Assert 运算符用于验证条件。例如,验证引用完整性或确保标量子查询返回一行。对于每个输入行,Assert 运算符都要计算执行计划的 Argument 列中的表达式。如果此表达式的值为 NULL,则通过 Assert 运算符传递该行,并且查询执行将继续。如果此表达式的值非空,则将产生相应的错误。


断言与Check约束:

 

先来看看这段代码,在服务器执行时,先创建测试环境,使用TempDB是不错的选择:



                
  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值