原创 | SQL优化之不查询多余的行和列

简介: 记得数据库要是高版本的才能还原成功,我使用的数据库是SQL Server 2016版本的。

1、不查多余的列

查询过程中经常为了省事,而直接使用*来代替所有的列,好处是不需要写明列。坏处就是遇到列比较多的表查询效率就大大折扣了。例如:


SELECT * FROM [Sales].[SalesOrderDetail];


我们执行一下可以看到如下信息:

30.jpg

Q:上面的消息界面是怎么出来的呢?

A:点击菜单栏的查询——查询选项...——高级,将SET  STATISTICS TIME和SET STATISTICS IO都勾选上就可以了


上面的相关信息我给大家解读一下:

扫描计数:索引或表扫描次数

逻辑读取:数据缓存中读取的页数

物理读取:从磁盘中读取的页数

预读:查询过程中,从磁盘放入缓存的页数

lob逻辑读取:从数据缓存中读取,image,text,ntext或大型数据的页数

lob物理读取:从磁盘中读取,image,text,ntext或大型数据的页数

lob预读:查询过程中,从磁盘放入缓存的image,text,ntext或大型数据的页数

语句的CPU时间分编译阶段执行阶段

CPU时间是指:执行语句的时间

占用时间是指:从磁盘读取数据再处理总的使用时间

编译阶段:

SQL Server 分析和编译时间:

执行阶段:

SQL Server 执行时间:

这些信息我们以后都会经常看到的,这是判断一个查询语句最直观的方式。


我们再单独查询一列看会怎么样?例如:

SELECT UnitPrice FROM [Sales].[SalesOrderDetail];


我们执行一下可以看到如下信息:


31.jpg



通过上面的时间对比我们就可以清楚的看到:将列名明确的列出,不显示不相关的列效率有很大的提升。

这里就是大家经常看到的一条优化建议:不要直接使用*进行查询,而只查询需要的列。


2、不查多余的行

  • 在查询的时候使用WHERE关键字可以很好的过滤掉不需要的行。这也是提高查询效率的一种方式,其实这才是WHERE关键字存在的意义。例如:
SELECT UnitPrice FROM [Sales].[SalesOrderDetail] WHERE UnitPrice>1000;

我们执行一下可以看到如下信息:

32.jpg


所占用的时间成倍的减少,效果显而易见。


  • 使用DISTINCT关键字减少多余重复的行。
    例如:
SELECT DISTINCT UnitPrice
FROM [Sales].[SalesOrderDetail]
WHERE UnitPrice>1000;

我们执行一下可以看到如下信息:


33.jpg

可能有些同学对DISTINCT关键字有不同的看发,稍后我们根据具体情况再逐一给大家进行分析。

今天的内容就分享到这里啦,觉得不错记得转发分享给更多人~

相关文章
|
2天前
|
SQL 资源调度 分布式计算
如何让SQL跑快一点?(优化指南)
这篇文章主要探讨了如何在阿里云MaxCompute(原ODPS)平台上对SQL任务进行优化,特别是针对大数据处理和分析场景下的性能优化。
|
4天前
|
SQL 移动开发 Oracle
SQL语句实现查询连续六天数据的方法与技巧
在数据库查询中,有时需要筛选出符合特定时间连续性条件的数据记录
|
11天前
|
SQL 监控 数据库
慢SQL对数据库写入性能的影响及优化技巧
在数据库管理系统中,慢SQL(即执行缓慢的SQL语句)不仅会影响查询性能,还可能对数据库的写入性能产生显著的不利影响
|
11天前
|
SQL Java 数据库连接
如何使用`DriverManager.getConnection()`连接数据库,并利用`PreparedStatement`执行参数化查询,有效防止SQL注入。
【10月更文挑战第6天】在代码与逻辑交织的世界中,我从一名数据库新手出发,通过不断探索与实践,最终成为熟练掌握JDBC的开发者。这段旅程充满挑战与惊喜,从建立数据库连接到执行SQL语句,再到理解事务管理和批处理等高级功能,每一步都让我对JDBC有了更深的认识。示例代码展示了如何使用`DriverManager.getConnection()`连接数据库,并利用`PreparedStatement`执行参数化查询,有效防止SQL注入。
47 5
|
12天前
|
SQL 数据挖掘 数据库
SQL查询每秒的数据:技巧、方法与性能优化
id="">SQL查询功能详解 SQL(Structured Query Language,结构化查询语言)是一种专门用于与数据库进行沟通和操作的语言
|
12天前
|
SQL 移动开发 大数据
SQL语句查询连续六天满足条件的记录
在数据库管理和数据分析中,我们经常需要查询符合特定时间范围内连续几天的记录
|
4天前
|
SQL 数据可视化 BI
SQL语句及查询结果解析:技巧与方法
在数据库管理和数据分析中,SQL语句扮演着至关重要的角色
|
10天前
|
SQL 监控 关系型数据库
使用SQL语句查询操作耗时的技巧与方法
在数据库管理和优化过程中,了解SQL查询操作的耗时是至关重要的
|
10天前
|
SQL
创建分组总计查询的SQL技巧与方法
在SQL中,创建分组总计查询(也称为聚合查询)是一项非常基础且重要的技能
|
11天前
|
SQL 存储 数据库
慢SQL对数据库写入性能的影响及优化技巧
在数据库管理系统中,慢SQL(即执行缓慢的SQL语句)不仅会影响查询性能,还可能对数据库的写入性能产生显著的不利影响