今天在优化一个先人留下的sql语句时,发现有两个问题。在这些问题被解决后,SQL语句执行效率有了很大的提高。
首先介绍一下情况。
数据库是oracle。
我们使用的数据表有40+的字段。大概有4-5W条数据。
我们需要获取一个主管所负责的所有数据。
元sql是这样的:
select * from Opened_Ar where
customerid in
(select distinct customerid from Opened_Ar where
( sec not like 'SA%' and sec not like 'KR%')
and amt > 0 and sh_Of_Sales=&sh and ich != &sh
)
and bill_Date < to_date('2010-3-1','yyyy-MM-dd')
and (sec not like 'SA%' and sec not like 'KR%') and amt > 0
order by customerName1 desc,bill_Date desc
在尝试抓取一个只有49条记录的结果集时,竟然用时630s。崩溃了。
发现有两个问题:
- 使用了in关键字。虽然in对应的()内也只有几条数据,但是同样会影响速度。应该使用exists
- bill_date无法过滤掉大量的数据,应该放在最接近where的地方。可以过滤大量数据的条件放在距离where最远的地方。(因为sql语句是从下往上运行的)
最终的sql语句改为这样:
select * from Opened_Ar o1 where
bill_Date < to_date('2010-3-1','yyyy-MM-dd')
and (sec not like 'SA%' and sec not like 'KR%') and amt > 0
and exists
(select customerid from Opened_Ar o2 where ( o2.sec not like 'SA%' and o2.sec not like 'KR%') and o2.amt > 0 and o2.sh_Of_Sales=&sh and o2.ich != &sh and o2.customerid = o1.customerid
)
order by customerName1 desc,bill_Date desc
修改后,原来630s的时间,竟然缩减为不到一秒钟。非常好。以上是我的小修改。或许还有更好的方法。但这样已经可以达到我目前的需求了。
分享到:
相关推荐
新一代智能SQL语句优化技术是数据库管理领域的重要进步,它主要针对的是提升数据库应用程序的性能。SQL(结构化查询语言)作为访问和更新数据的主要工具,其性能优化对于整体系统效率有着重大影响。通常,SQL语句...
在SQL编程领域,掌握高效的SQL语句优化技巧和基础知识是至关重要的。以下是对"非常好用的SQL语句优化34条+sql语句基础"这一主题的详细解析: 1. **索引优化**:索引是提高查询速度的关键。创建合适的索引(主键、...
SQL 语句优化方法 30 例 SQL 语句优化是一种非常重要的数据库优化技术,目的是为了提高数据库的查询效率,减少查询时间,提高系统的整体性能。在 SQL 语句优化过程中,我们经常会用到 hint,今天我们将总结一下在 ...
SQL语句优化原则是数据库管理和应用开发中的关键环节,它涉及到如何提高查询效率,减少资源消耗,提升系统整体性能。以下是一些针对SQL语句优化的重要原则和方法: 1. **利用索引**:索引是提高查询速度的关键。...
在数据库管理中,SQL语句优化是提升系统性能的关键步骤,尤其对于大型系统而言,一个高效的SQL查询可以显著减少响应时间,改善用户体验。本文将详细阐述"sql语句优化之降龙十八掌",逐一解析这十八个优化技巧,帮助...
### SQL语句优化手册 #### 一、引言 随着信息技术的发展,数据库系统在各行业中扮演着越来越重要的角色。为了确保数据库系统能够高效地运行,SQL语句优化成为了提升系统性能的关键因素之一。SQL(Structured Query...
### SQL语句优化建议 #### 重要性与挑战 SQL语句优化是数据库管理与维护中的关键环节,尤其在处理大规模数据集时显得至关重要。优化不仅能够显著提升查询效率,减少资源消耗,还能改善用户体验,确保系统的稳定性...
SQL语句优化是提高软件系统效率的关键技术,尤其是在大数据量的场景下,高效的SQL能够显著提升数据库查询速度,降低系统资源消耗。以下是一些关于SQL优化的重要知识点: 1. **IN操作符**: - 使用IN操作符虽然使得...
SQL语句优化是性能优化的关键环节,因为它直接影响到数据的检索速度和资源的消耗。本文将深入探讨SQL语句优化,包括优化器的工作原理、优化工具、数据访问方法以及如何收集统计信息来辅助优化。 首先,Oracle的优化...
### SQL语句优化心得 #### 引言 在软件开发过程中,SQL语句的编写往往直接关系到应用程序的性能表现。特别是在系统初期阶段,由于数据量较小,即使编写了一些效率较低的SQL语句,也可能不会立即暴露出来。然而,...
SQL语句优化是数据库性能提升的关键环节,尤其是在大数据量的环境下。优化SQL语句能够显著提高查询速度,减少服务器负载,提升系统整体效率。以下是一些关于SQL语句优化的重要知识点: 1. **选择最有效的表名顺序**...
便于Java入门人员交流学习。可以深刻理解该语言的常用API。帮助初学者尽快入门。
SQL语句优化是数据库管理中的关键环节,尤其是在大型企业级应用中,高效的SQL查询能够显著提升系统的整体性能。本文将详细探讨几个重要的SQL优化规则,这些规则主要针对Oracle数据库系统。 1. **选用适合的ORACLE...
sql 语句优化 SQL Server数据库查询速度慢的原因有很多
优化数据库、SQL语句优化的原则、不要以为只有SELECT语句是查询。实际上,带有任何WHERE条件的 DML(INSERT、UPDATE、DELETE)语句中都包含查询要求,在后面的文章中,当说到查询时,不一定只是指SELECT语句,也有可能...
### 一般SQL语句优化整理 #### 概述 在数据库操作中,SQL查询语句是数据检索的核心,其性能直接影响到应用系统的响应时间和资源消耗。对于一般的SQL语句优化,不仅能够提升查询效率,还能改善用户体验。本文将对...
总之,SQL语句优化是提升数据库性能的关键。了解并遵循上述原则,可以编写出更加高效的SQL,从而提高系统整体的响应速度和可用性。在实际开发中,应不断学习和实践,以适应不同场景下的性能需求。
SQL语句优化是数据库管理中的核心技能之一,它关乎到系统的性能、响应时间和资源利用率。在处理大量数据时,有效的SQL优化策略能显著提升数据库应用的效率。以下是对SQL语句优化技术的详细分析: 一、理解执行计划 ...
SQL语句优化是数据库管理中的关键技能,尤其是在Oracle系统中,高效的SQL能够显著提升系统性能。优化SQL的主要目标是减少查询时间和资源消耗。这通常涉及到合理利用索引,索引是一种特殊的数据库对象,用于加速数据...