0 0

有哪个大哥可以帮小弟把下面的sql优化一下(oracle)0

有哪个大哥可以帮小弟把下面的sql优化一下(oracle)

select distinct t1.a, t1.b, t1.c
from table1 t1 left join table2 t2 on t1.t2ID = t2.id
where t1.c = TO_CHAR(add_months(sysdate,decode(t2.a , '0' , -1 ,-2 )),'YYYYMM') 
and t1.a is not null

问题补充:select distinct t1.a, t1.b, t1.c
from table1 t1 left join table2 t2 on t1.t2ID = t2.id
where t1.c = TO_CHAR(add_months(sysdate,decode(-1)),'YYYYMM') 
and t1.a is not null
and t2a = '0'
UNION
select distinct t1.a, t1.b, t1.c
from table1 t1 left join table2 t2 on t1.t2ID = t2.id
where t1.c = TO_CHAR(add_months(sysdate,decode(-2)),'YYYYMM') 
and t1.a is not null
and t2a = '1'


用了这个办法,速度 是快多了
2013年9月11日 17:40

5个答案 按时间排序 按投票排序

0 0

保守的一个:

select distinct t1.a, t1.b, t1.c from table1 t1, (
	select t2.id, TO_CHAR(add_months(sysdate,decode(t2.a , '0' , -1 ,-2 )),'YYYYMM') mon from table2 t2
) c where
t1.id=c.id and t1.c=c.mon and t1.a is not null


建议t1.a is not null替换为不用null判断的,如果t1.a是数字,就用t1.a>0,如果你的a>0
如果t1.a是字符串就用t1.a>'a',如果你的字符串绝对比'a'大

这些都比null好

2013年9月13日 00:09
0 0

1.你需要明确一下 两张表的数据量
2.提供以下索引所在列
3.提供以下执行计划
没有这些东西,无法来判断如何优化

2013年9月12日 19:25
0 0

能用union all吗?

2013年9月12日 12:22
0 0

建议还是贴一下执行计划吧,而且你的上下两句sql语义不是等价的吧,即使t2.a只有0或1,你的t1和t2是外连接,连接后t2.a还有可能是null

2013年9月12日 10:15
0 0

最好别用distinct,用group by?,你这语句应该没什么地方可优化,用青蛙试试

2013年9月12日 09:42

相关推荐

    OracleSQL的优化.pdf

    Oracle SQL 优化 Oracle SQL 优化是数据库性能优化的关键部分。为了提高数据库的性能,我们需要从五个方面进行调整:去掉不必要的大型表的全表扫描、缓存小型表的全表扫描、检验优化索引的使用、检验优化的连接技术...

    SQL优化 SQL优化软件 SQL优化工具

    在Oracle环境中,常用的SQL优化工具包括Oracle SQL Developer、Toad for Oracle、SQL Server Management Studio (尽管它是针对SQL Server的)等。这些工具不仅提供了上述功能,还专门针对Oracle数据库的特性进行了...

    基于Oracle的SQL优化2

    基于Oracle的SQL优化

    ORACLE-SQL性能优化大全.pdf

    ### ORACLE-SQL性能优化大全知识点详述 #### 一、优化基础知识概述 - **性能管理**: - **尽早开始**:性能优化应该在项目的早期就开始考虑,而不是等到后期出现性能瓶颈时才去处理。 - **设立合适目标**:设定...

    《基于Oracle的SQL优化》PDF版本下载.txt

    根据提供的文件信息,本文将对《基于Oracle的SQL优化》这一主题进行深入解析,包括但不限于SQL优化的重要性、Oracle数据库的特点以及具体的SQL优化方法等。 ### SQL优化的重要性 SQL(Structured Query Language)...

    ORACLESQL性能优化.pptx

    通过对 SQL 语句执行的过程、Oracle 优化器、表之间的关联、如何得到 SQL 执行计划、如何分析执行计划等内容的讨论,可以逐步掌握 SQL 优化的过程。 在 SQL 优化过程中,需要了解性能管理、性能问题、调整的方法、...

    oraclesql优化_Oracle中优化SQL的原则.pdf

    oraclesql优化_Oracle中优化SQL的原则.pdf

    Oracle_SQL优化脚本_完整实用资源

    Oracle SQL优化是数据库管理员和开发人员提升系统性能的关键技能之一。这个"Oracle_SQL优化脚本_完整实用资源"压缩包包含了一系列工具和方法,旨在帮助你优化在Oracle数据库上运行的SQL查询,从而提高数据库的响应...

    oracle sql优化

    在Oracle数据库环境中,SQL优化是提升系统性能的关键环节。它涉及到如何有效地检索数据,减少查询时间,减轻数据库服务器的负载,以及改善整体系统的响应速度。本文将深入探讨Oracle SQL优化的相关知识点,帮助你...

    sqlserver自动生成sql语句工具sqlserver转oracle

    4. 性能优化:Oracle可能有更佳的性能调优策略,如索引类型、分区策略等,迁移后可能需要进一步优化。 5. 数据迁移:除了结构迁移,还要考虑数据的迁移。大容量数据的迁移可能需要分批进行,以减少对业务的影响。 ...

    Oracle 高性能SQL优化(ppt)

    设计阶段的优化可以避免后期大量调整,开发阶段的优化则直接影响代码质量,测试阶段有助于发现并解决问题,运行维护阶段的优化则是持续改进。 SQL调整面临一些障碍,如特定SQL生成器的调整、不可再用SQL的处理、...

    SqlDbx连接oracle

    SqlDbx是一款轻量级的数据库管理工具,特别适合于SQL查询和数据库开发。它以其直观的用户界面和对多种数据库系统的支持而受到青睐,包括Oracle...通过理解和配置这些文件,你可以更流畅地在SqlDbx中操作Oracle数据库。

    ORACLE SQL优化工具sqlhc

    `SQLHC`(SQL Health Check)是Oracle提供的一种实用工具,它可以帮助DBA(数据库管理员)诊断和优化SQL语句。在这个压缩包中,包含的文件`sqldx.sql`、`sqlhc.sql`和`sqlhcxec.sql`都是与SQL优化相关的脚本。 首先...

    高清完整版 Oracle 高性能SQL引擎剖析SQL优化与调优机制详解

    Oracle的SQL优化与调优机制复杂多样,涵盖了从SQL语句的编写、执行计划的选择、到资源管理的全方位调优方法。为了深入理解Oracle SQL优化与调优机制,需要掌握以下几个核心知识点。 首先,要掌握Oracle SQL的基本...

    落落 Oracle SQL优化与改写培训教程

    大量优化实战方法:将主要SQL优化点一一剖析,分享大量SQL优化的实际工作经验 50余改写调优案例:覆盖大多数DBA日常工作场景,具有相当大的实用价值 技巧+案例:可以作为DBA的参考手册,也可以作为开发人员编写SQL...

    oracle sql优化实战案例

    主要讲述oracle sql 的开发以及优化,对低效率的sql的优化方法和诊断技巧

Global site tag (gtag.js) - Google Analytics