0 0

oracle distinct 优化0

有这么条语句

select distinct a, b, c, d
               from t1
                    join t2 on t2.c1 = t1.c1
                    join t3 on t3.c1 = t1.c2 
                    join t4 on t4.c1 = t1.c3    where 
t1.c2 = '1'
t1.c3 = '2'

          

 
现在的问题是:如果不加distinct的话执行的特别快在0.03秒左右,加入后在2-3秒,而且不加distinct的话这个结果集会很大,500多万条,其实这四张表中单表最大的也就4万多条记录,只是关联之后的中间结果集数据量上来了。

 

试了一下,把select distinct a, b, c, d变成select distinct a也不会很快,大概在1-2秒

 

请问大家,针对这样的一条语句该如何优化

 

 

2012年6月20日 14:14

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

0 0

要不试试group

2012年6月20日 22:04
0 0

a, b, c, d四个字段分别在四个表中么?

2012年6月20日 17:19
0 0

把sql放在plsql里面按f5然后把解释计划发上来瞅瞅

2012年6月20日 17:07
0 0

改用Union试一下

2012年6月20日 15:52

相关推荐

    oracle性能优化技巧

    ### Oracle性能优化技巧详解 #### 一、Oracle优化器模式 在Oracle数据库中,优化器是决定查询执行计划的关键组件,其目标是最小化资源消耗并最大化查询性能。Oracle提供了三种主要的优化器模式:基于规则(RULE)...

    Oracle语句优化规则汇总

    Oracle数据库是全球广泛使用的数据库管理系统,其性能优化是数据库管理员和开发人员的重要任务。本文将深入探讨Oracle语句优化的若干关键规则,帮助你提升数据库的运行效率。 1. **选择正确的索引策略**:索引是...

    Oracle_SQL优化规则

    Oracle SQL优化是数据库管理员和开发人员提升数据库性能的关键技能。SQL(结构化查询语言)是访问和操作Oracle数据库的主要工具,而优化SQL语句则能显著提高查询速度,减少资源消耗,进而提升整个系统的响应时间。...

    Oracle Sql 优化

    ### Oracle SQL 优化详解 #### 一、Oracle SQL优化的重要性 在系统开发初期,由于数据库数据量较小,可能不会明显感受到不同SQL语句编写方式带来的性能差异。然而,当系统投入实际应用,尤其是面对海量数据时,SQL...

    【Maclean Liu技术分享】拨开Oracle CBO优化器迷雾,探究Histogram直方图之秘_0321.pdf

    ### Oracle CBO优化器与直方图(Histogram)解析 #### 概述 在数据库管理领域,Oracle CBO(Cost-Based Optimizer)成本基于优化器是Oracle数据库管理系统中用于确定查询执行计划的一种重要机制。通过分析SQL语句,...

    浅谈Oracle优化排序的操作

    Oracle的排序操作通常发生在以下几种情况下:创建索引、索引维护、ORDER BY、GROUP BY、DISTINCT、UNION/INTERSECT/MINUS以及SORT-MERGE JOIN等。 **排序空间**:在进行排序时,Oracle会先尝试在`sort_area_size`...

    对oracle性能优化多种主要方法的总结

    ### 对Oracle性能优化多种主要方法的总结 #### 一、SQL语句优化 **SQL语句优化的过程**主要包括以下几个步骤: 1. **定位有问题的语句**:通过Oracle的内部工具,比如`v$session_wait`和`v$sql`等视图来定位执行...

    oracle性能优化总结

    Oracle数据库性能优化是一个复杂且关键的任务,它涉及到多个层面,包括SQL语句的编写、查询优化、索引策略以及系统参数调整等。以下是对标题和描述中提到的一些关键知识点的详细解释: 1. **SQL语句规范**:使用...

    oracle 性能优化建议小结

    ### Oracle性能优化建议小结 在Oracle数据库管理与性能调优的过程中,理解并掌握一系列的优化技巧至关重要。本文将从给定的文件标题、描述、标签以及部分内容中提炼出的关键点进行深入解析,旨在帮助数据库管理员及...

    oracle的sql优化

    Oracle的SQL优化是数据库管理中的关键任务,它旨在提高查询速度、降低资源消耗,从而提升整个系统的性能。以下是一些重要的优化策略: 1. **全表扫描与索引扫描**: - 全表扫描应尽量避免,尤其对于大数据量的表,...

    Oracle SQL优化.pdf

    ### Oracle SQL优化详解 #### 一、SQL语句编写注意事项 **1. ISNULL与ISNOTNULL** 在WHERE子句中使用`IS NULL`或`IS NOT NULL`时,Oracle优化器通常不会利用索引进行搜索。这是因为`IS NULL`和`IS NOT NULL`检查的...

    Oracle的性能优化(ppt72页).pptx

    - 排序优化涉及group by、order by、distinct和minus/union操作,选择合适的排序方式可以显著提升性能。 - 联合查询的联合次序选择也会影响性能,合理安排表的联合顺序可以减少不必要的数据处理。 3. **Oracle...

    Oracle优化.ppt

    "Oracle 优化" Oracle 优化是指 Oracle 数据库管理系统中的一种技术,用于提高数据库查询的效率和性能。Oracle 优化器(Optimizer)是 Oracle 在执行 SQL 之前分析语句的工具。Oracle 优化器有两种优化方式:基于...

    Oracle 19C SQL调优指南 中文版 DBA优化利器

    - **避免不必要的排序和临时表**:优化GROUP BY、ORDER BY和DISTINCT操作。 - **使用子查询优化**:理解并应用子查询合并和子查询消除技术。 5. **存储优化** - **分区技术**:了解范围、列表、哈希和组合分区,...

    Oracle SQL优化规则.zip

    Oracle SQL优化是数据库管理中的关键环节,尤其是在大型企业级应用中,高效的SQL查询能显著提升系统性能,降低服务器资源消耗。以下是一些重要的Oracle SQL优化规则: 1. **选择合适的索引策略**:索引是提升查询...

    oracle中使用group by优化distinct

    在Oracle数据库中,当面临大量数据的处理时,性能优化是一项关键任务。特别是对于包含`DISTINCT`关键字的SQL查询,由于其需要去除重复行,性能可能会显著下降。`DISTINCT`操作通常会进行全表扫描,这在数据量大的...

    oracle优化的基本原是和实用的SQL优化技巧

    Oracle数据库的优化是数据库管理员和开发人员日常工作中不可或缺的一部分,其目标是提高SQL查询的执行效率,减少资源消耗,从而提升整体系统性能。本篇将深入探讨Oracle优化的基本原理和实用的SQL优化技巧。 首先,...

    oracle优化直方图

    在探讨Oracle优化直方图之前,需要对优化器的概念有所了解。优化器在数据库中扮演着非常重要的角色,它负责生成执行计划,决定如何高效地从数据库中检索数据。优化器有两种类型:基于规则的优化器(RBO)和基于成本...

    oracle本表去重的语句优化

    在Oracle数据库中,进行表内数据去重是一项常见的任务,特别是在处理大量数据时。面对一个包含一亿条记录,且每个记录只有一个字段`mobile`的`bao_mobile_temp`表,如何高效地去除重复数据,是本文要探讨的核心问题...

Global site tag (gtag.js) - Google Analytics