SQL性能学习汇总 00
- 1.在一条语句中不要重复使用相同的函数
- 2.尽可能在存储过程中使用临时变量和临时表
- 如 IF (Object_ID('tempdb..#T') IS NOT NULL) DROP TABLE #T
- SELECT … INTO #T FROM…
- DROP TABLE #T ;
- 3.当用SELECT INTO时,它会锁住系统表(SYSOBJECTS,SYSINDEXES等等),
- 阻碍其他连接的存取。所以在创建临时表时应该用显示申明语句,
- 即不在事务内使用SELECT INTO语句。
- select into #T .......
- Begin tran
- update #T .......
- end tran
- 4.存储过程中涉及更改数据时一定要使用try catch 事务 回滚等
- 5.SELECT子句中避免使用'*' 尽可能的写出需要查询的字段名
- 6.条件中尽量少用否定类型的运算符,条件中尽量少用
- '<>', '!=''NOT IN', 'NOT EXISTS','NOT LIKE'等否定类型的运算符,
- 因为它们不走索引全是表扫描 效率高低比较EXISTS > IN > NOT EXISTS > NOT IN,
- 所以可用EXISTS代替IN的使用, NOT EXISTS或(OUTER JOIN)代替NOT IN的使用。
- 7.在WHERE条件中IN后的值排序为先繁后少,减少判断次数
- 8.避免在索引列上使用IS NULL 和 IS NOT NULL。NULL条件将使该索引无法作用。
- 9.尽可能不在条件中使用函数
- 10.用'>=','<='替代'>','<'
- 示例(不推荐)
- SELECT EmpNO
- FROM EMP
- WHERE DeptNO > 3;
- 示例(推荐)
- SELECT EmpNO
- FROM EMP
- WHERE DeptNO >= 4;
- 两者区别在于,前者DBMS将直接跳到Dept等于4的记录而后者将首先定位
- 到DeptNO = 3的记录再向前扫描到第一个Dept大于3的记录
- 11.UNION代替OR的使用
- 12.TOP + 数值 替代 TOP + 百分比 的使用
- 13.尽量使用精准查询
- 在LIKE语句中,若能确定使用LIKE'a%'则不用LIKE'%a'或LIKE'%a%'
- 因为前者能用上索引,而后两者则不能。
- 且LIKE'%a%'查询时的耗时和字段值总长度成正比,
- 所以用VARCHAR比用CHAR类型较高效。
- 如果能精准查询则坚决不能采用模糊查询。
- 14.条件允许时UNION ALL替代UNION的使用
- 15.没有必要时不用DISTINCT和ORDER BY
- DISTINCT和ORDER BY这些动作可以改在客户端执行。
- 它们增加了额外的开销。这同UNION和UNION ALL一样的道理
- 16.使用批处理更新语句,一次更新多条记录比分多次更新而每次更新一条语句快。
SQL性能学习汇总 00的更多相关文章
- SQL性能优化汇总
SQL效率低下也是导致性能差的一个非常重要的原因,可以通过查看执行计划看SQL慢在哪里,一般情况,SQL效率低下原因主要有: 类别 子类 表达式或描述 原因 索引 未建索引 无 产生全表扫描 未利 ...
- ORACLE SQL性能优化汇总
ORACLE SQL语句共享 Oracle SQL语句具备共享特性,为了不让ORACLE数据库重复解析相同的简单单表SQL语句,ORACLE在SGA系统共享区域内SBP共享池内存放的SQL语句将被所有 ...
- ORACLE数据库学习之SQL性能优化详解
Oracle sql 性能优化调整 ...
- Mysql高级操作学习笔记:索引结构、树的区别、索引优缺点、创建索引原则(我们对哪种数据创建索引)、索引分类、Sql性能分析、索引使用、索引失效、索引设计原则
Mysql高级操作 索引概述: 索引是高效获取数据的数据结构 索引结构: B+Tree() Hash(不支持范围查询,精准匹配效率极高) 树的区别: 二叉树:可能产生不平衡,顺序数据可能会出现链表结构 ...
- sqlt 之 分析 DB upgrade 导致SQL 性能下降 的方法 xplore
https://blog.csdn.net/lukeUnique/article/details/79331779 https://mauro-pagano.com/2014/10/27/when-t ...
- Oracle 数据库SQL性能查看
作为一个开发/测试人员,或多或少都得和数据库打交道,而对数据库的操作归根到底都是SQL语句,所有操作到最后都是操作数据,那么对sql性能的掌控又成了我们工作中一件非常重要的工作.下面简单介绍下一些查看 ...
- SQL语句学习手册实例版
SQL语句学习手册实例版 表操作 例1 对于表的教学管理数据库中的表 STUDENTS ,可以定义如下: CREATE TABLE STUDENTS (SNO NUMERIC (6, ...
- 一个有趣的SQL Server 层级汇总数据问题
看SQL Server大V宋大侠的博客文章,发现了一个有趣的sql server层级汇总数据问题. 具体的问题如下: parent_id emp_id emp_nam ...
- SQL索引学习-聚集索引
这篇接着我们的索引学习系列,这次主要来分享一些有关聚集索引的问题.上一篇SQL索引学习-索引结构主要是从一些基础概念上给大家分享了我的理解,没有实例,有朋友就提到了聚集索引的问题,这里列出来一下: 其 ...
随机推荐
- python变量
1. 系统变量 (1) '__doc__' 文件注释,在py中代码最上方""" """里面一般写注释,系统会把文件注释自动存放在'__doc ...
- photoshop拾色器如何恢复默认?
今天在做设计图的时候,遇到一个问题,当时就把我给整蒙了. 问题是这样的,ps的调色器变成了这样,如下: 本来应该是这样: 可能有人已经看出两张图的不同之处了. 但是我当时忙的不得了,恩是不知道哪里除了 ...
- Google Maps API V3 之绘图库 信息窗口
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...
- 1JavaEE应用简介----青软S2SH(笔记)
这本书主要是讲解Struts2,spring,Hibernate框架的, 因为工作中用的较多的是SpringMVC,Struts2用的较少,所以想系统学习一下,就买了这本书. 这本书是青软的,虽然是培 ...
- shell中的条件判断、参数以及变量替换
文章转自: http://www.cnblogs.com/maxupeng/archive/2011/07/02/2096551.html 一.test命令 test命令是shell内部命令,它计算作 ...
- Mongodb profile(慢查询日志)
在MySQL中,慢查询日志是经常作为我们优化数据库的依据,那在MongoDB中是否有类似的功能呢?答案是肯定的,那就是MongoDB Database Profiler.所以MongoDB 不仅有,而 ...
- PropertiesFactoryBean PropertyPlaceholderConfigurer 区别
正如 stackoverflow上说的,PropertiesFactoryBean 是PropertiesLoaderSupport 直接的实现类, 专门用来管理properties文件的工厂bean ...
- 第2月第24天 coretext 行高
1.NSMutableAttributedString 行高 NSMutableAttributedString *attributedString = [[NSMutableAttributedSt ...
- python练手基础
Python相关文档0.1. Python标准文档0.2. Python实用大全0.3. 迷人的Python0.4. 深入理解Python0.5. Python扩展库网址 http://pypi.py ...
- 最近使用oracle的笔记和少量的正则表达式
用户.表空间.表: 一个用户一般给予一个表空间,可以多个用户共同管理一个表空间 一个表空间会有多张表对于权限的控制: 在数据库中在人员菜单与需要浏览的文件之间做权限设置能否浏览,可以 ...