【摘要】

动作丰富的SQL语句

Action-Packed SQL Statements

此节结论:

尽量减少过程逻辑出现在SQL语句,比如if-else之类;能使用一句SQL不要分解为过程逻辑,尽量由数据库系统来提高更高的效率。

为了说明这个问题,我简要测试以下语句:

A、

Update TBUser Set LoginPassword = 222222 Where UserID = 10020774
Begin
    If Exists(Select UserID From TBUser with(nolock) Where UserID = 10020774 And Birthday is null)
    Begin
        Update TBUser Set Birthday = TBUserHeadPic.CTime From TBUserHeadPic Where TBuser.UserID = 10020774 And TBuser.Birthday is null And TBUserHeadPic.UserID = 10020774 And TBUserHeadPic.IsUsed = 1;
    End
End

B、

Update TBUser Set Birthday = TBUserHeadPic.CTime,LoginPassword = 222222 From TBUserHeadPic Where TBuser.UserID = 10020776 And TBUserHeadPic.UserID = 10020776 And TBUserHeadPic.IsUsed = 1;

A、B两句在查询分析器中执行,得出以下结论:

满足Birthday=null条件下,A所有语句执行效率占68%,B语句占32%

不满足Birthday=null条件下,A所有语句执行效率占49%,B语句占51%

此例的Sql逻辑尽管有些混乱,但表述一点:从另一张表的数据赋值到另一表的过程。但在效率上下面一句的效率明显优势。

个人观点

转载于:https://www.cnblogs.com/GoGoagg/archive/2010/11/30/1891827.html

阅读SQL语言艺术实践一相关推荐

  1. PL/SQL语言基础

    PL/SQL语言基础 /********************************数据类型*************************************/ %rowtype  (行对 ...

  2. sql语言和php,SQL语言快速入门(三)_php

    我们日常使用SQL语言的工作过程中,使用最多的还是从已经建立好的数据库中查询信息.下面,我们就来详细介绍一下如何使用SQL语言实现各种数据库查询操作. SELECT-FROM 为方便讲解,我们在数据库 ...

  3. 数据库SQL语言从入门到精通--Part 6--单表查询(快来PICK)

    数据库从入门到精通合集(超详细,学习数据库必看) 查询操作是SQL语言中很重要的操作,我们今天就来详细的学习一下. 一.数据查询的语句格式 SELECT [ALL|DISTINCT] <目标列表 ...

  4. Impala SQL 语言参考

    2019独角兽企业重金招聘Python工程师标准>>> Impala SQL 语言参考 Cloudera Impala 的查询语言是基于 SQL 的.为了保护用户在技能和查询设计方面 ...

  5. MySQL,Oracle系统学习,以及SQL语言-----数据库篇学习笔记

    Handouts MySQL和Oracle系统学习 一. 开篇立意(~~~~必看,有说明~~~~) 二. Oracle 篇 数据库存在之意义 基础概念(必须看,后面不会说明!!!) Oracle管理系 ...

  6. mysql请输入一个有效类型的长度值_MySQL数据库基础(三)——SQL语言

    MySQL数据库基础(三)--SQL语言 发布时间:2020-05-19 16:40:05 来源:51CTO 阅读:10596 作者:天山老妖S MySQL数据库基础(三)--SQL语言 一.SQL语 ...

  7. 【转】SQL语言艺术

    SQL 语言艺术 内容介绍 本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明.这些例 子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你 ...

  8. 数据库编程与设计—SQL语言

    一.SQL语言基础 1 什么是SQL 结构化查询语言结构化查询语言(Structured Query Language)简称 SQL(发音:sequal['si:kwəl]),是一种数据库查询和程序设 ...

  9. 数据库SQL语言学习--数据查询(持续更新中)

    数据库SQL语言学习--数据查询(持续更新中) 上机练习1 1.              启动SQL Server 2008中的 SQL Server Management Studio. 2.   ...

  10. 数据库SQL语言学习--上机练习2(连接查询 嵌套查询)(持续更新中)

    数据库SQL语言学习--上机练习2(连接查询 嵌套查询)(持续更新中) 上机练习2 1.              启动SQL Server 2008中的 SQL Server Management ...

最新文章

  1. 新51CTO博客体验笔记
  2. JDBC常用连接写法(包括MySQL、Oracle、Sybase、SQLServer、DB2)
  3. Linux监控进程的iops,linux性能监控工具--Collectl
  4. 【Node.js学习小案例】DNS域名解析 一
  5. 信息系统项目管理师:第9章:项目人力资源管理-历年真题
  6. win7锁定计算机要输入密码登陆,在win7中,怎么解决开机要输入用户密码
  7. SCCM 2007系列教程之三日志文件
  8. linux vg备份还原,Oracle Linux 6.4 误删VG之恢复过程
  9. 监督学习 | 线性回归 之正则线性模型原理及Sklearn实现
  10. Cocos2d-x中使用第三方so库
  11. 夺命雷公狗ThinkPHP项目之----企业网站13之文章列表页的实现(主要是分页的实现)...
  12. C++设计模式详解之外观模式解析
  13. 面向初学者的图形数据库:为什么我们需要NoSQL数据库,ACID与BASE的解释说明
  14. 谈谈linux系统调用
  15. oracle获取SID
  16. Python 将输出内容保存在text文件中
  17. Zabbix触发器和监控项设置时间范围.
  18. oracle ora00020,ORA-00020: maximum number of processes (1000) 错误处理
  19. Android 开机动画的启动
  20. ISOIEC27000标准族-ISO27001关联体系

热门文章

  1. 突然发现到今天已经很难找到对底层理解这么透彻的人
  2. jBPM与业务系统集成-通过定制Task Instance等方式实现
  3. 搭建自己的博客(二十):优化博客评论功能
  4. 【Unity编辑器】UnityEditor多重弹出窗体与编辑器窗口层级管理
  5. 转移符 个人工作中使用记录一下
  6. 实现系统菜单的两种方式
  7. Hadoop的基本结构介绍(原创)
  8. 顺序链表的C风格实现
  9. Git 与 GitHub
  10. CF876 D 树状数组