5段SQL可以测试出你对SQL性能优化知识了解多少

转载 2014年10月28日 15:00:52
数据库是很强大的,它可以实现超预期的执行性能。但是很多人很容易写出不能发挥最高效算法的SQL查询语句,因而也容易产生无法预期的性能结果。

下面UncleToo为大家整理出5段SQL,都是大家平时经常写的SQL,但是稍微经过一些优化,或者换种写法,也许他的执行效率就会高出好几倍,大家也可以对照自己平时的写法,看看自己是否还有继续学习的空间。

本文介绍的SQL是基于ORACLE数据库的。

1、查询2014年所有的行


有过SQL优化经验的人也许会问,这样写没问题啊,将出现在条件中的字段加索引,可以起到优化SQL的作用,怎么会有问题呢?有这样疑问的朋友对数据库优化还是有所了解的,但是你忽略了一点:不管是ORACLE还是其他数据库,一旦将字段放在函数里执行,该字段的索引将不起作用。那么正确的写法如下:



2、查询出最近日期的一行数据


这段SQL很经典,开发中很多地方都可能会用到类似这样的查询。没错,这段SQL是不需要优化的,它可以按照经过索引的 Top-N 查询方式执行,它的效率跟 INDEX UNIQUE SCAN(唯一索引扫描) 是等效的,所以会非常快。

3、两个查询语句,通过一个普通列查询:




这个很简单,只有第一个SQL用到了索引,而第二个却无法使用索引。其实这就是单索引与组合索引在使用上的区别。

4、字符串模糊查询


在前面的文章中,我们曾经说过 like 语句如何使用通配符才能提高效率(8个SQL语句常用优化技巧)。当条件中遇到 like 语句,那么无论该字段是否设置索引效果都一样,因为索引遇到 like 就会无法发挥其效能,而且也没有更好的解决办法,因此建议大家除非万不得已,否则不要轻易使用 like 语句。

5、查询某条件下的记录数


上面两条查询语句,第一条可能会查出几千或者几万条记录,而第二条语句因为多了一个条件可能只查出几条或几十条记录,也许大家会认为第二条语句的效率更快。其实刚好相反,第一条语句的执行效率更快。因为第一条语句中,索引覆盖了所有查询字段,而第二个SQL中的b条件没有索引。

如何测试sql语句性能,提高执行效率

为了让您的程序执行的效率更高,SQL的效率一定不可忽视。 现有以下方法去检测SQL的执行效率。   对于多表查询的效率测试: 1)直接from ,where方式。 SET STATISTICS...
  • CsethCRM
  • CsethCRM
  • 2016-12-27 13:22:00
  • 1332

SqlServer性能检测和优化工具使用详细

工具概要         如果你的数据库应用系统中,存在有大量表,视图,索引,触发器,函数,存储过程,sql语句等等,又性能低下,而苦逼的你又要对其优化,那么你该怎么办?哥教你,首先你要知道问题出在...
  • DCX903170332
  • DCX903170332
  • 2015-05-22 15:36:42
  • 33508

MySQL查看SQL语句执行效率和mysql几种性能测试的工具

Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好...
  • chengxuyuanyonghu
  • chengxuyuanyonghu
  • 2017-03-11 22:18:09
  • 9165

Explain 检测SQL语句的性能

做系统如果不封装底层的话,就需要拼写一大串的SQL语句,但是你对你出来的sql语句性能有多少了解呢?      用exlain关键字来检测一下你所拼写的sql语句性能吧,当你看到结果的时候希望你不要...
  • tang_huan_11
  • tang_huan_11
  • 2014-12-09 20:06:12
  • 1888

MYSQL性能检测和优化

首先是如何检查SQL的效率.   1.善用explain:   设计SQL后,应使用explain命令检查SQL,看是否使用到索引,是否存在filesort,重点检查检索的行数(rows)...
  • jimlong
  • jimlong
  • 2013-09-07 10:43:06
  • 4010

SQL模拟考试题

第1题 条件:查询成绩90分以上(包含90分)的学生课程成绩明细 显示:学生学号、学生姓名、课程编号、课程名称、成绩、老师编号、老师姓名 排序:学生学号、课程编号、成绩 说明:老师编号和老...
  • xiaobei_cug
  • xiaobei_cug
  • 2017-07-23 21:11:02
  • 539

sql常见面试题 (我觉得太好了)

Sql常见面试题 受用了 1. 用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name   kecheng   fenshu 张三     语文       81 张三    ...
  • u012467492
  • u012467492
  • 2015-07-07 15:29:15
  • 122043

超经典SQL练习题,做完这些你的SQL就过关了

SQL 联系题 使用方法:我用的数据库是 Ms SQL Server 2008 ,练习时应当自己建数据,自己先思考,切勿急躁翻答案!否则效果减半,做完这些,恭喜你,你的 SQL 就算过关了。...
  • flycat296
  • flycat296
  • 2017-03-19 10:19:31
  • 17480

SQL语句测试SQL语句测试SQL语句测试

  • 2010年08月04日 17:59
  • 1KB
  • 下载

sql查询测试数据

  • 2017年08月07日 14:50
  • 3KB
  • 下载
收藏助手
不良信息举报
您举报文章:5段SQL可以测试出你对SQL性能优化知识了解多少
举报原因:
原因补充:

(最多只允许输入30个字)