`
guoxuepeng
  • 浏览: 36917 次
文章分类
社区版块
存档分类
最新评论

SQL查询效率介绍及9个注意事项

 
阅读更多

一、查询条件精确,针对有参数传入情况

二、SQL逻辑执行顺序

  FROM-->JOIN-->WHERE-->GROUP-->HAVING-->DISTINCT-->ORDER-->TOP

三、横向

查询需要的字段
当在SQL语句中连接多个表时,请使用表的别名并把别名前缀于每个Column上这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误
四、少做重复工作

控制同一语句的多次执行,特别是一些基础数据的多次执行是很多程序员很少注意的
减少多次的数据转换
杜绝不必要的子查询和连接表,子查询在执行计划一般解释成外连接,多余的连接表带来额外的开销
五、关于零时表#与表变量@

如果语句很复杂,连接太多,可以考虑用临时表和表变量分步完成
如果需要多次用到一个大表的同一部分数据,考虑用临时表和表变量暂存这部分数据
如果需要综合多个表的数据,形成一个结果,可以考虑用临时表和表变量分步汇总这多个表的数据
关于临时表和表变量的选择,在数据量较多的情况下,临时表的速度反而更快
SELECT INTO会比CREATE TABLE + INSERT INTO的方法快,但是SELECT INTO会锁定TEMPDB的系统表SYSOBJECTS、SYSINDEXES、SYSCOLUMNS,在多用户并发环境下,容易阻塞其他进程
六、子查询

子查询可以用IN、NOT IN、EXISTS、NOT EXISTS引入
NOT IN、NOT EXISTS的相关子查询可以改用LEFT JOIN代替写法
如果保证子查询没有重复 ,IN、EXISTS的相关子查询可以用INNER JOIN 代替
IN的相关子查询用EXISTS代替
七、索引

避免对索引字段进行计算操作
SELECT ID FROM T WHERE NUM/2=100
应改为:
SELECT ID FROM T WHERE NUM=100*2
避免在索引字段上使用NOT,<>,!=
避免在索引列上使用IS NULL和IS NOT NULL
避免在索引列上出现数据类型转换
避免在索引字段上使用函数
避免建立索引的列中使用空值
不要对索引字段进行多字段连接
WHERE FAME+'. '+LNAME='HAIWEI.YANG'
应改为:
WHERE FNAME='HAIWEI' AND LNAME='YANG'
八、多表连接

多表连接的时候,连接条件必须写全,宁可重复,不要缺漏
连接条件尽量使用聚集索引
九、其他

在可以使用UNION ALL的语句里,使用UNION ALL
避免在WHERE子句中使用IN,NOT IN,OR
避免使用耗费资源的操作,带有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL语句会启动SQL引擎执行,耗费资源的排序(SORT)功能. DISTINCT需要一次排序操作, 而其他的至少需要执行两次排序
LIKE ‘%5400%’ 这种查询不会引用索引,而LIKE ‘X5400%’则会引用范围索引。

分享到:
评论

相关推荐

    优化sql语句执行效率几点注意事项

    优化sql语句执行效率几点需要注意的事项

    sql 优化语句的几个常用注意事项

    保证数据库性能的sql语句写法,注意事项,使得我们在书写时避免使数据库低效率的执行命令

    SQL查询效率注意事项小结

    一、查询条件精确,针对有参数传入情况 二、SQL逻辑执行顺序 FROM–&gt;JOIN–&gt;WHERE–&gt;GROUP–&gt;HAVING–&gt;DISTINCT–&gt;ORDER–&gt;TOP 三、横向 查询需要的字段 当在SQL语句中连接多个表时,请使用表的别名并把别名前缀于每...

    ORACLE+SQL效率优化.rar

    ORACLE+SQL效率优化.rar,详细讲解oracle中sql语句效率优化方法和注意事项。

    软件性能测试实施-之-数据仓库-ETL及存储设计(SQL效率和数据库设计)-性能注意事项.doc

    软件性能测试实施-之-数据仓库-ETL及存储设计(SQL效率和数据库设计)-性能注意事项

    编写高效率SQL

    编写高效率SQL的技巧和注意事项

    sql lite导入数据

    下面,我们将详细讨论 SQL Lite 导入数据的过程和注意事项。 一、SQL Lite 导入数据的必要性 在实际项目中,数据库的合并和迁移是非常常见的操作。例如,在资源库和业务库整合时,需要将某些表从一个数据库复制到...

    ORACLE培训SQL性能优化.pptx

    在 SQL 语句优化过程中,我们需要注意一些重要的注意事项。例如,我们需要检查执行计划,检查执行过程中优化器的统计信息,分析相关表的记录数、索引情况,并改写 SQL 语句、使用 HINT、调整索引、表分析。只有通过...

    SQL SERVER 2000开发与管理应用实例

    9.3.2 使用BCP或者BULK 时的注意事项 286 9.3.3 外部数据文件位置及文件访问权限问题 287 9.4 在客户端实现SQL Server数据导入与导出处理 288 9.4.1 在Access数据库中实现与SQL Server之间的数据交换 288...

    迷你版SQL2000服务器

    注意事项: 1、本软件必须定义实例名和端口,本软件中的数据库无目录限制; 2、新建、附加和恢复数据库,这几项操作会将数据库保存或转移到本软件所在目录的DATA目录下,同时也会将数据库文件的物理文件名和逻辑名...

    配置与SQL_Server2000的ODBC连接

    配置与 SQL Server 2000 的 ODBC 连接 本文主要介绍了如何配置与 SQL Server 2000 的 ODBC 连接,并且使用 Visual Basic ...本文介绍了配置 ODBC 连接的步骤和注意事项,希望能够帮助读者更好地理解和应用数据库技术。

    VC+SQL SERVER学生信息管理系统

    操作注意事项 (1)本系统管理员用户名为:tsoft,密码为:111。 (2)实例执行文件位置:\08\学生管理系统\源程序\Debug\mystudentsys.exe 操作流程 运行本系统,请按照以下流程操作: (1)在“基础信息管理”中的...

    SQL Server存储过程编程经验技巧

    本文将详细介绍SQL Server存储过程编程经验技巧,涵盖了SQL Server存储过程的基本概念、编写技巧和注意事项等内容。同时,本文也将对SQL Server存储过程的应用场景和优化方法进行介绍,以便读者更好地理解和应用SQL ...

    sql格式化工具集合

    第一款在线格式化工具: Instant SQL Formatter 功能强劲,可以设置 第二款,和第一款类似,功能也一样,只不过是不同的UI而已,SQLPP... 您可能感兴趣的文章:SQL查询效率注意事项小结Oracle提高SQL执行效率的3种方法my

    怎样优化数据库查询,提高优化效率?.pdf

    本文将从查询语句、索引、使用临时表等方面讨论数据库查询优化的方法和注意事项。 一、查询语句优化 对查询进行优化,应尽量避免全表扫描,应先考虑在where 或 orderby 涉及的列上建立索引。这样可以减少查询时间...

    exists的使用(查询选择了所有课程的学生信息)归纳.pdf

    EXISTS 和 IN 语句在 SQL 查询中的应用 ...EXISTS 和 IN 语句是 SQL 中的两个重要语句,它们都可以用于实现复杂的查询逻辑。理解它们的工作机制和应用场景对于提高查询效率和解决实际问题非常重要。

    SQL错误代码大全知识.pdf

    本文档提供了 SQL Server 错误代码大全知识,涵盖了各种 SQL Server 错误代码的描述、解决方法和注意事项。下面是本文档中所涉及到的知识点: 1. HY000 错误:所有绑定列都是只读的。解决方法:检查绑定列的权限,...

    supermap objects 6 开发技术文档

    本文档内容包括:SuperMap 的大型空间数据库引擎 SDX+ 介绍、SuperMap 中的查询功能(空间查询、SQL 查询详细介绍)、叠加分析功能、拓扑分析功能、网络分析功能、栅格分析功能、地图及 SuperMap Objects 使用注意...

    学生管理系统vc6.0+sql sever2000(光盘内容)

    操作注意事项 (1)本系统管理员用户名为:tsoft,密码为:111。 (2)实例执行文件位置:\08\学生管理系统\源程序\Debug\mystudentsys.exe 操作流程 运行本系统,请按照以下流程操作: (1)在“基础信息管理”中的...

Global site tag (gtag.js) - Google Analytics