`
zzhonghe
  • 浏览: 248196 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SQL性能调优技巧

    博客分类:
  • DB
 
阅读更多

Data Model设计的Tip

 
1. 以三个范式为基础,业务的独立性和原子性拆分要合适,杜绝Key的冗余和不充分依赖
2. 对于有NULL值的时候,说明可以拆分为子类, 如果有互斥值,比如两个字段,如果A有值,那么B就不能有值
3. 隐藏的约束,某个Column为A值,那么另外一个Column就必须为B值,或者某个Column只能是1~20的值
4. 对于Boolean值,比如某个Flag Column,  Y/N, 其实可以考虑用更有意义的值来替代,比如Complete Date. 当然如果处于性能考虑的话不在此列。
 
 
高效访问DB的Tip
 
1.  java单独调用的语句,可以加上/**/Select ...的注释,方便在dbms_application_info中识别相应的语句
2. 减少于DB连接的次数,减少编译语句的次数, DB Pool,  PreparedStatement
3. 从最终的查询目标出发,查找数据。而不是从过程出发,查找数据
4. 不要动态建立数据库对象,比如索引,临时表,中间表等,都是不可取的。用GTtable是非常好的选择。
5. 修改数据库表数据,尽量用1条SQL搞定一批,而不是打开游标,然后update.  检索+处理+插入数据
6. 接近DB的核心来处理数据,速度越快,SQL>PLSQL>Java
7. 杜绝使用count(*),一定可以找得到替代的方式
8. 用NVL, NULLIF, Case When, Decode等语句来替代IF ELSE逻辑,处理速度要快些。
9. update + Case When, 可以合并多个update语句到1条里面
10. 慎用自定义的函数,特别是带有select语句的函数method,性能杀手,而且无法优化
11. where条件中用decode,一条语句查出多种记录。
12. 能不抛异常就别抛,不要在异常处理逻辑中加上业务
13. 基于源表对目标表做Insert,Update,Delete操作, 用Merge into...When Matched then Insert ... 
          http://www.cnblogs.com/lenxu/archive/2012/02/14/2350922.html
 
 
索引
 
1. 维护一个索引的开销,可能比一张表还要大,所以要精确设计索引,每个所以有是非常必须才添加
2. 如果一次获取的数据比较多,当超过表中数据总数的10%以上,那么是没有必要有索引,全表扫描可能更快
3. 索引指向的是某个数据块,而不是某条记录,所以紧凑的数据块结构能够获得更好的性能
4. 索引列上使用函数,会让索引失效,另外维护函数索引,成本会非常的高
5. 隐式的类型转换会让索引失效。 a=123  如果a是字符串,那么a上的索引会失效
6. 复合索引优于普通索引,1个索引可以适用多个场景使用,减少维护索引的数量
7. 逆序索引 Reverse Index,将key逆序后,再建索引,减少高并发的竞争资源,范围查询无效
8. 哈希索引,把key的值进行索引,提高并发性能,但是不能范围查。
 
 
SQL语句技巧
 
1. 关系操作有join, 非关系操作有group by, order by. 非关系操作需要临时的表空间进行存储
2. 单条数据查询响应时间要很快,努力让结果集和时间成正比
3. 复杂查询中尽量不用视图,可以会join到不需要的数据,不利于性能
4. exist用于子查询的情况是,父表数据少,子表数据多。in则是子表数据少,父表数据多的情况。  not exist和not in的场景与此类似
5. in的括号里面暗含了distinct和order by的操作,放置于内存。
6. Rank聚合函数
 

 

分享到:
评论

相关推荐

    DB2 SQL性能调优秘笈

    对于DB2数据库管理员(DBA)来说,掌握有效的SQL性能调优技巧至关重要。这不仅能提升系统的响应速度,还能优化资源利用,确保应用程序的顺畅运行。 #### 一、SQL查询性能分析 SQL查询性能是DB2性能管理的核心。...

    DB2 SQL性能调优秘笈 . 美 Tony Andrews . PDF . ckook.pdf

    《DB2 SQL性能调优秘笈》是一本深入探讨如何优化DB2数据库系统中SQL查询性能的专业书籍。作者Tony Andrews是DB2领域的专家,他在这本书中分享了丰富的经验和实用技巧,帮助读者解决在实际工作中遇到的性能瓶颈问题。...

    T-SQL性能调优秘笈 基于SQL Server 2012窗口函数

    标题中提到的“T-SQL性能调优秘笈 基于SQL Server 2012窗口函数”表明了这本书主要讨论的是针对SQL Server 2012版本进行T-SQL性能调优的技巧和方法,特别强调了窗口函数的应用。窗口函数是SQL中用于进行数据分组和...

    《DB2 SQL性能调优秘笈》.((美)Tony Andrews).[PDF].&ckook;

    DB2作为IBM公司的一款企业级关系型数据库管理系统,广泛应用于各种业务场景,其性能调优技巧的学习对于提升整体系统效能至关重要。 本书可能涵盖了以下几个方面的内容: 1. **SQL基础与DB2架构**:首先,书中可能...

    SQL性能调优方法特提供下载

    以上是SQL性能调优中的一些基本技巧和方法。需要注意的是,实际应用中还需要结合具体的数据库系统特性来进行调优。此外,针对特定场景和查询模式,可能还需要采用更高级的技术手段,如创建合适的索引、调整数据库...

    SQL Server性能调优.pdf

    ### SQL Server性能调优知识点详解 #### 一、SQL Server性能调优概述 **SQL Server性能调优**是一项系统性的任务,旨在通过一系列的技术手段和最佳实践来提高Microsoft SQL Server数据库系统的运行效率和响应速度...

    高性能SQL调优

    4. **SQL优化工具**:Oracle提供了一系列工具,如SQL Trace、10053事件、AWR(自动工作区管理报告)、ASH(活动会话历史)等,用于诊断SQL性能问题。 5. **存储优化**:包括表空间管理、段空间管理、数据块大小选择...

    oracle sql性能调优

    Oracle SQL性能调优是数据库管理中的重要环节,它关乎到系统的响应速度和整体效率。在Oracle数据库中,SQL语句的优化是通过多种策略来实现的,这些策略旨在减少查询处理时间,降低资源消耗,从而提升系统性能。下面...

    SQL.Server性能调优.doc

    在实际的SQL Server性能调优过程中,除了使用这些工具,还需要考虑其他因素,如查询优化器的行为、索引的使用、存储架构、查询编写技巧、资源分配策略等。同时,持续监控和定期分析数据库性能是保持高效运行的关键。...

    从码农到工匠,这些.NET性能调优技巧,你不得不知(含:Core、EF、数据库调优).docx

    总结来说,从码农到工匠,理解并掌握.NET性能调优技巧,包括.NET Core的配置优化、EF的使用策略以及数据库调优方法,是提升软件质量,降低系统成本,同时也是个人技能提升的重要途径。在实际工作中,结合理论知识与...

    Oracle数据库Sql性能调优

    ### Oracle数据库SQL性能调优详解 #### 一、选用适合的ORACLE优化器 ORACLE提供了三种优化器供用户选择: 1. **基于规则的优化器(RULE)**:这是一种较为传统的优化方式,它依赖于预定义的规则来确定SQL语句的...

    SQL Server 2005 技术内幕之性能调优原版CHM

    通过深入学习《SQL Server 2005 技术内幕之性能调优》,读者不仅可以掌握SQL Server 2005的性能调优技巧,还能培养出一套完整的性能优化思维框架,这对于在实际工作中解决性能问题,提升系统效能具有极大的帮助。...

    SQL性能调优

    ### SQL性能调优详解 在IT领域,数据库的性能直接影响着系统的响应时间和资源消耗,而SQL作为数据库查询语言,其优化技巧是提升数据库性能的关键。本文将深入探讨SQL性能调优的重要策略,涵盖从基本的SQL语句优化到...

    SQL数据库调优技巧指南.docx

    SQL数据库调优是数据库管理员和开发人员的关键技能,它涉及到优化SQL查询以提高数据库系统的性能。本文主要讨论了在`ORDER BY`子句中涉及的字段是否应该包含在索引中以及其对SQL查询性能的影响。 首先,让我们回顾...

    MySQL分布式数据库中间件Mycat性能调优指南

    避免全表扫描,合理使用索引,减少JOIN操作,以及优化GROUP BY和ORDER BY语句,都是提高SQL性能的有效手段。 4. **读写分离**:Mycat支持读写分离,可以降低主库压力,提高读取速度。根据业务需求,合理配置读写...

Global site tag (gtag.js) - Google Analytics