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语句总结

一、基础 1、说明:创建数据库 CREATE DATABASE database-name  2、说明:删除数据库 drop database dbname 3、说明:备份sql ser...
  • yunbin_7
  • yunbin_7
  • 2013年10月21日 20:18
  • 1492

如何查找性能最差的SQL语句

--总耗时最长 SELECT TOP 10         total_worker_time / 1000 AS N'总消耗CPU 时间(ms)' ,         execution_count...
  • prince_lintb
  • prince_lintb
  • 2016年03月11日 14:20
  • 804

查看sql语句执行时间或测试sql语句性能

查看sql语句执行时间或测试sql语句性能
  • jjzaihaozhe
  • jjzaihaozhe
  • 2015年12月03日 16:38
  • 4374

SQL执行效率和性能测试方法总结

对于做管理系统和分析系统的程序员,复杂SQL语句是不可避免的,面对海量数据,有时候经过优化的某一条语句,可以提高执行效率和整体运行性能。如何选择SQL语句,本文提供了两种方法,分别对多条SQL进行量化...
  • fwj380891124
  • fwj380891124
  • 2014年12月24日 17:53
  • 4647

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

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

数据库SQL优化大总结之 百万级数据库优化方案

网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。 这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉...
  • zhushuai1221
  • zhushuai1221
  • 2016年06月23日 09:43
  • 25459

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

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

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

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

一份基本的SQL测试题

 数据库基础测试题 姓名:          工号:     一、单项选择题,把合适的选项编号填写在括号内。(每小题1分,共10分) 1.在数据库技术中,实体-联系模型是一种( A )A.概念数据模型...
  • caiqcong
  • caiqcong
  • 2009年06月23日 14:16
  • 11269

Sql性能优化之检查问题sql的方法

Sql性能优化之检查问题sql的方法   出现查询性能问题时,首先要做的是确定问题点是什么,只有正确的找到问题后才能有针对性的解决问题。 下面简单介绍我们一般从哪些角度入手,来确定问题所在: ...
  • u010241906
  • u010241906
  • 2014年04月28日 22:38
  • 833
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:5段SQL可以测试出你对SQL性能优化知识了解多少
举报原因:
原因补充:

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