今天遇到一个oracle报表查询优化的问题,需要用hints固定执行join的执行计划,已经有3年没怎么用oracle开发了,当时的优化思路还记得,但是hints怎么用确实是忘记了!搜索到了这篇文章,自己几年前看过的,还是这么有用!!
于是就记录下来,免得自己以后忘记了,在到处找:
http://www.remote-dba.net/t_op_sql_query_hint.htm
基本场景如下,有一张主的事实表,每天的新增数据在几百万条,该表做了按天的分区,另外有一张日期的维表,2张表做关联,用户查询的时候最长周期是查询一周的数据,最短是查询一天的数据。
主要的优化思路就是:
1. 增加计算并行度 parallel 根据rac的节点来设置合并的并行度,基本上就是每台rac节点的cpu个数。
2. 控制join方式:
日志维表做broadcast
事实表做sendhash
基本上做到以上2点,就可以搞定了!经过优化,查询一周的数据在10s左右。1天的数据消耗在1s。
分享到:
相关推荐
### Oracle Hints 详解 #### 一、Oracle Hints 概述 在Oracle数据库中,Hints(提示)是一种特殊的语法,允许用户直接控制SQL语句的执行计划,从而实现更高级别的性能调优。通常情况下,Oracle的优化器能够根据...
标题“oracle-hints.rar_oracle”暗示了这个压缩包包含的是关于Oracle Hints的相关资料,可能是文档、示例或者教程,旨在帮助用户理解和掌握如何在Oracle数据库中使用Hints来优化SQL查询。 描述中的"sql error can ...
### Oracle Hints用法详解 Oracle Hints是Oracle数据库中一种非常实用的功能,它允许用户在SQL语句中提供优化器提示,以便更好地控制查询执行计划。这些提示可以帮助数据库优化器选择更有效的路径来执行查询,从而...
### 解析Oracle Hints #### 摘要 在现代软件开发过程中,数据库优化成为确保应用程序性能的关键步骤之一。尤其对于大规模系统来说,SQL查询优化的重要性不言而喻。Oracle数据库作为市场上主流的企业级数据库之一,...
Oracle的Hints调整机制是数据库管理员和开发人员用来指导Oracle Cost-Based Optimizer(CBO)做出更符合预期执行计划的一种方式。Hints是一种在SQL查询中插入的特殊注释,用于告诉Oracle如何优化查询路径,以提高...
启用并行查询可以通过 ALTER TABLE 语句或使用 Hints 提示,例如: SQL> ALTER TABLE T1 PARALLEL; SQL> SELECT /*+ PARALLEL(T1 8) */ COUNT(*) FROM T1; 在启用并行查询时,需要注意系统的资源负载状况,以确定...
- Oracle 允许使用特定的优化程序提示,如 `/*+ optimizer_hints */`,但在 SQL Server 中需要去掉,使用其内置的优化器。 - Oracle 的 `START WITH U CONNECT BY` 用于创建层次查询,SQL Server 可以通过递归公共表...
在Oracle中,"hints"是一个强大的工具,它允许数据库管理员和开发人员对查询优化器(Query Optimizer)进行指导,以影响其选择执行计划。在本文中,我们将深入探讨Oracle中的hints机制,以及如何有效地使用它们来...
"template_hints_demo.zip_DEMO" 是一个示例项目,旨在展示如何有效地利用模板功能。这个压缩包包含了一些关于模板使用的提示和实践案例,以帮助开发者更好地理解和应用模板。 1. **模板基础** - 模板分为函数模板...
根据给定文件的信息,我们可以提炼出以下相关的IT知识点: ### 高速CAN收发器TJA1042/43/48/51应用提示 #### 1....- **TJA1042/TJA1043/TJA1048/TJA1051**:这些产品是恩智浦半导体(NXP Semiconductors)推出的下一代...
Oracle Hints是Oracle数据库中一种用于优化SQL查询的工具。它们允许数据库管理员和开发人员提供关于如何执行SQL语句的提示,以此来改善查询性能。Oracle Hints在处理复杂SQL语句或特定类型的数据库操作时尤其有用,...
### Oracle SQL 语句暗示 (Hints) 全面解析 #### 一、引言 在当前企业级应用环境中,为了实现成本控制与性能优化的目标,高效编写应用程序变得尤为重要。这不仅涉及程序的设计与实现,还包括运行时资源的有效利用...
hints 使用的好的話很好用。在进行sql执行过程中,由于有时候系统自动优化的方式并不是最优的。需要我们手工添加hint来提高查询效率。
Oracle SQL Hints是一种在Oracle数据库中用于优化SQL语句执行计划的辅助手段。通过在SQL语句中嵌入特定的指令,即HINT,可以向Oracle优化器强制指示使用特定的访问路径、关联方法等,以便绕过优化器的默认选择,从而...
7. **查询优化器**:理解CBO(Cost-Based Optimizer)的工作原理,学习如何使用optimizer_mode和hints来影响优化器的选择。 8. **物化视图和重写**:对于经常执行的复杂查询,创建物化视图可以预先计算结果,提高...
- **使用提示(Hints)**:通过在SQL语句中添加特定的注释来指导优化器如何生成执行计划。 - **使用Outline**:创建一个固定的执行计划,确保每次执行都采用相同的计划。 通过以上内容的学习,我们可以了解到Oracle中...
### Oracle优化器详解 #### 一、Oracle优化器概述 Oracle数据库优化器是数据库管理系统中的一个关键组件,它...此外,了解如何通过初始化参数、Hints等方式调整优化器的行为也是管理Oracle数据库性能的重要手段之一。
5. **提示(Hints)**:在SQL查询中添加提示可以指导优化器选择特定的执行计划,但这应谨慎使用,因为过度依赖提示可能导致其他问题。 在"Oracle_chaxunyouhuagaixiejiqiaoyuanli_20180929.pdf"这份文档中,可能会...