`
jayghost
  • 浏览: 441654 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

查询优化

 
阅读更多

转:http://blog.csdn.net/chunhua_love/article/details/8700463

优化查询常用方法如下:

1、合理使用索引

索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。索引的使用要恰到好处,使用原则如下:

  • 经常在查询中作为条件被使用的列,应为其建立索引。
  • 频繁进行排序或分组(即进行group by或order by操作)的列,应为其建立索引。
  • 一个列的值域很大时,应为其建立索引。
  • 如果待排序的列有多个,应在这些列上建立复合索引。
  • 可以使用系统工具来检查索引的完整性,必要时进行修复,别外,当数据库表更新大量的数据后,删除并重建索引可以提高查询速度。

2、避免或简化排序

应当简化或避免对大型表进行重复的排序。当能够利用索引自动以适当的次序产生输出时,优化器就可以避免不必要的排序步骤。

以下是一些影响因素:

  • 由于现有索引的不足,导致排序时索引中不包括一个或多个待排序的列。
  • group by 或order by子句中列的次序与索引的次序不一样。
  • 排序的列来自不同的表。

为了避免不必要的排序,就要正确地增建索引,合理地合并数据库表(尽管有时可能影响表的规范化,但相对于效率的提高是值得的)。如果排序不可避免,那么应当简化它,如缩小排序列的范围。

3、消除对大型表行数据的顺序存取

在嵌套查询中,对表的顺序存取对查询效率可能产生致命的影响。

4、避免相关子查询

查询嵌套层次越多,效率越低,因此应当尽量避免子查询。如果子查询不可避免,那么要在子查询中过虑掉可能多的行。

5、避免困难的正规表达式

避免含matches和like关键字的正规表达式。

6、使用临时表加速查询

把表的一个子查询进行排序并创建临时表,有时可以加速查询。

7、用排序取代非顺序磁盘存取

非顺序磁盘存取是最慢的操作。有些时候,可以使用以数据库排序功能为基础的sql来替代非顺序的存取,以改进查询效率。

8、不充分的连接条件

左(右)连接消耗的资源非常之多,因为它们包含与null(不存在)数据匹配的数据,其代价可能非常高。左(右)连接比内连接消耗资源更多,所以如果可以重新编写查询,使得该查询不使用任何左(右)连接,则会得到非常可观的回报。

9、存储过程

对于频繁使用的sql语句建议使用存储过程。别外,要注意存储过程尽量使用sql自带的返回参数,而非自定义的返回参数,减少不必要的参数,避免数据冗余。

10、不要随意使用游标

游标会占用比较多的资源,尤其是对于大规模并发量的情况下,很容易使得资源耗尽而崩溃。所以,不要随意使用游标,而且游标使用完成后就及时关闭和销毁,以释放资源。

11、事务处理

为了同时操作多个表而保证数据库的一致性,往往会用到事务。但是一旦将多个处理放入事务当中,系统的处理速度会有所降低,所以应当在保证数据库一致的前提下,将频繁操作的多个可分割的处理过程放入到存储过程当中去,这样会大大提高系统的响应速度。

分享到:
评论

相关推荐

    数据库查询优化算法

    数据库查询优化是数据库管理系统中的关键环节,其目的是在满足用户查询需求的同时,尽可能地提高查询效率,减少资源消耗。在数据库领域,有三种经典的查询优化算法:基于成本的优化、基于规则的优化以及动态规划优化...

    Oracle 多表查询优化

    Oracle 多表查询优化 Oracle 多表查询优化是指在 Oracle 数据库管理系统中,为了提高多表查询的效率和性能采取的一些优化策略和技术。在 Oracle 中,多表查询是指从多个表中检索数据的操作。这种操作可能会占用大量...

    基于机器学习的查询优化研究.docx

    "基于机器学习的查询优化研究" 本文主要介绍基于机器学习的查询优化研究,旨在提高查询效率和准确性。研究方法主要集中在特征选择、模型构建、实验设计和评估指标上。通过采用机器学习技术,训练出更高效的查询计划...

    Oracle查询优化改写 技巧与案例.pdf

    Oracle查询优化是数据库管理中的重要环节,它直接关系到数据库的性能和响应速度。针对Oracle数据库的查询优化,本文件提供了丰富的技巧和案例分析,以帮助读者深入理解优化原理,并能在实际工作中学以致用。 首先,...

    《Oracle查询优化改写技巧与案例》PDF版本下载.txt

    根据提供的文件信息,本文将对《Oracle查询优化改写技巧与案例》这一主题进行详细的解析,涵盖Oracle查询优化的基本概念、重要性、改写技巧及其实际应用案例。 ### 一、Oracle查询优化概述 #### 1.1 查询优化定义 ...

    Oracle查询优化改写技巧与案例2.zip

    《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...

    Oracle查询优化改写技巧与案例

    《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...

    百万数据级快速查询优化技巧

    标题与描述概述的知识点主要集中在数据库查询优化技巧上,尤其针对拥有百万级别数据量的数据库。以下是对这些知识点的详细解读: ### 数据库快速查询优化技巧 #### 1. 避免全表扫描,优化WHERE子句 - **空值判断**...

    MySQL数据库查询优化

    综述查询优化技术范围,包括查询重用、查询重写规则、查询算法优化、并行查询优化等 综述逻辑查询优化,包括子查询的优化、视图重写、等价谓词重写、条件化简、连接消除、非SPJ的优化等 综述逻辑物理优化,包括单表...

    数据库查询优化论文

    ### 数据库查询优化的核心知识点 #### 一、查询优化的重要性 数据库查询优化是数据库管理系统(DBMS)中的关键组件,其目标在于选择最有效的查询执行计划,以最小化资源消耗(如CPU时间、I/O操作)并提高响应速度。...

    百万数据查询优化海量数据查询优化

    【标题】:“百万数据查询优化海量数据查询优化” 在处理海量数据时,查询优化显得尤为重要,特别是当数据量达到百万级别甚至更高时。查询优化旨在提高数据查询的效率,减少查询时间,提升系统性能。以下是一些关键...

    Postgres查询优化方案

    本文将深入探讨如何针对Postgres进行查询优化,确保高效的数据检索,同时解决分页查询的问题。 1. **索引优化**:索引是提升查询速度的关键。对于频繁进行查询的字段,尤其是用于where条件、join条件和排序的字段,...

    Oracle查询优化改写-技巧与案例

    Oracle查询优化是数据库管理中的关键技能,尤其是在处理大型数据集时,有效的查询优化能显著提升系统性能,降低资源消耗。本书“Oracle查询优化改写-技巧与案例2.0”聚焦于这一主题,旨在为数据库管理员(DBA)和开发...

    分布式数据库查询优化

    ### 分布式数据库查询优化详解 #### 一、背景与挑战 随着信息技术的快速发展和各行各业对数据处理需求的增加,数据库系统面临着前所未有的挑战。一方面,数据量的急剧增长要求数据库具备更高的存储能力和更快的...

    ORACLE多表查询优化

    Oracle 多表查询优化 在 Oracle 数据库中,多表查询是一种常见的查询方式,但它也可能会对数据库性能产生影响。本文将讨论 Oracle 多表查询优化的几种方法,帮助开发者提高数据库性能。 1. 选择最有效率的表名顺序...

    Oracle数据库中大型表查询优化的研究

    在Oracle数据库中,大型表查询优化是一个至关重要的主题,尤其对于处理海量数据的企业级应用而言。Oracle数据库以其高效、稳定和强大的功能著称,但在处理大规模数据时,如果不进行适当的优化,查询性能可能会显著...

    数据库概论实验范文实验九:查询优化2

    在数据库领域,查询优化是提高数据库系统性能的关键环节。实验九“查询优化2”主要探讨了如何通过不同的策略和方法来提升SQL查询的执行效率。本实验基于《数据库概论》这本书,旨在帮助学习者深入理解查询优化的概念...

    基于半连接的分布式数据库查询优化算法探讨

    分布式数据库查询优化是关系数据库管理系统领域中的一个重要课题,它直接影响到数据库系统的性能,尤其在处理大量数据和复杂查询时,高效的查询优化算法可以显著减少查询响应时间,提高系统吞吐量。本文讨论的基于半...

    《查询优化》实验报告

    《查询优化》实验报告主要探讨了在SQL Server 2000环境下,如何通过查询优化提升数据库性能。实验中,采用了一个典型的学生-课程-选课的数据库结构,包括s、c和sc三个表,各表之间存在外键关联。通过对不同查询场景...

Global site tag (gtag.js) - Google Analytics