阅读SQL语言艺术实践一
【摘要】
动作丰富的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语言艺术实践一相关推荐
- PL/SQL语言基础
PL/SQL语言基础 /********************************数据类型*************************************/ %rowtype (行对 ...
- sql语言和php,SQL语言快速入门(三)_php
我们日常使用SQL语言的工作过程中,使用最多的还是从已经建立好的数据库中查询信息.下面,我们就来详细介绍一下如何使用SQL语言实现各种数据库查询操作. SELECT-FROM 为方便讲解,我们在数据库 ...
- 数据库SQL语言从入门到精通--Part 6--单表查询(快来PICK)
数据库从入门到精通合集(超详细,学习数据库必看) 查询操作是SQL语言中很重要的操作,我们今天就来详细的学习一下. 一.数据查询的语句格式 SELECT [ALL|DISTINCT] <目标列表 ...
- Impala SQL 语言参考
2019独角兽企业重金招聘Python工程师标准>>> Impala SQL 语言参考 Cloudera Impala 的查询语言是基于 SQL 的.为了保护用户在技能和查询设计方面 ...
- MySQL,Oracle系统学习,以及SQL语言-----数据库篇学习笔记
Handouts MySQL和Oracle系统学习 一. 开篇立意(~~~~必看,有说明~~~~) 二. Oracle 篇 数据库存在之意义 基础概念(必须看,后面不会说明!!!) Oracle管理系 ...
- mysql请输入一个有效类型的长度值_MySQL数据库基础(三)——SQL语言
MySQL数据库基础(三)--SQL语言 发布时间:2020-05-19 16:40:05 来源:51CTO 阅读:10596 作者:天山老妖S MySQL数据库基础(三)--SQL语言 一.SQL语 ...
- 【转】SQL语言艺术
SQL 语言艺术 内容介绍 本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明.这些例 子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你 ...
- 数据库编程与设计—SQL语言
一.SQL语言基础 1 什么是SQL 结构化查询语言结构化查询语言(Structured Query Language)简称 SQL(发音:sequal['si:kwəl]),是一种数据库查询和程序设 ...
- 数据库SQL语言学习--数据查询(持续更新中)
数据库SQL语言学习--数据查询(持续更新中) 上机练习1 1. 启动SQL Server 2008中的 SQL Server Management Studio. 2. ...
- 数据库SQL语言学习--上机练习2(连接查询 嵌套查询)(持续更新中)
数据库SQL语言学习--上机练习2(连接查询 嵌套查询)(持续更新中) 上机练习2 1. 启动SQL Server 2008中的 SQL Server Management ...
最新文章
- 新51CTO博客体验笔记
- JDBC常用连接写法(包括MySQL、Oracle、Sybase、SQLServer、DB2)
- Linux监控进程的iops,linux性能监控工具--Collectl
- 【Node.js学习小案例】DNS域名解析 一
- 信息系统项目管理师:第9章:项目人力资源管理-历年真题
- win7锁定计算机要输入密码登陆,在win7中,怎么解决开机要输入用户密码
- SCCM 2007系列教程之三日志文件
- linux vg备份还原,Oracle Linux 6.4 误删VG之恢复过程
- 监督学习 | 线性回归 之正则线性模型原理及Sklearn实现
- Cocos2d-x中使用第三方so库
- 夺命雷公狗ThinkPHP项目之----企业网站13之文章列表页的实现(主要是分页的实现)...
- C++设计模式详解之外观模式解析
- 面向初学者的图形数据库:为什么我们需要NoSQL数据库,ACID与BASE的解释说明
- 谈谈linux系统调用
- oracle获取SID
- Python 将输出内容保存在text文件中
- Zabbix触发器和监控项设置时间范围.
- oracle ora00020,ORA-00020: maximum number of processes (1000) 错误处理
- Android 开机动画的启动
- ISOIEC27000标准族-ISO27001关联体系