记录下来,做数据库优化和索引分析的方案
案例:
1:在分区表中,全局索引可能会导致索引失效,这样执行计划中不走索引,改本地索引local
2:对表进行分析,不用analyze,用了会对执行计划产生影响,对表和索引分析建议用dbms
exec dbms_stats.gather_table_stats(user,upper('tb_ori_0076'),cascade => true,degree => 2);
exec dbms_stats.gather_table_stats(user,
upper('tb_public_0005'),
cascade => true,
degree => 2);
exec dbms_stats.gather_table_stats(user,
upper('tb_index_0056'),
cascade => true,
degree => 2);
exec dbms_stats.gather_table_stats(user,
upper('tb_index_0055'),
cascade => true,
degree => 2);
exec dbms_stats.gather_index_stats(user,'IDX83882807',degree=>2);
3:学会查看explain plan for 执行计划,并创建合适的索引,必要的时候需要用到hint
使用方法:sqlplus user/username@sid
explain plan for sql语句
set timing on
set pagesize 1000
set linesize 150
spool c:/abc.lst
@?/rdbms/admin/utlxplp
spool off
4:使用跟踪事件10046,10046事件是Oracle提供的内部事件,是对SQL_TRACE的增强
SQL>select * from dual;
SQL>alter session set events '10046 trace name context forever,level 12';
SQL>粘贴要跟踪的sql并执行完成
SQL>alter session set events '10046 trace name context off';
SQL>exit
C:\>e:
E:\oracle\product\10.1.0\admin\TESTDB\udump>tkprof testdb_ora_1484.trc abc sys=no
可以在该目录中找到abc这个跟踪文件,进行分析
5:附件是2个写好的plsql命令,abc.sql是利用oracle后台job进行分区在某个时间自动新增分区,tabinfo.sql是分析数据库中当前表,并检索出表中各个字段情况。
通过此分析能快速帮我们排除哪些字段上建立索引最合适。
SQL>@c:\abc.sql 需要开启oracle后台作业进程oracleJobScheduler
SQL> select JOB_NAME,NEXT_RUN_DATE from dba_scheduler_jobs where job_name='MONTHLY_ADD_PARTITION';查看job任务
任务删除 drop_scheduler drop_job
SQL>@c:\tabinfo.sql 输入用户名和表名即可
SELECT no_, stock_code, stock_name, price_, money_flow_5, business
FROM (SELECT /*+ ordered index(t4 TB_ORA_0004_IDX1) index(t4_b TB_ORA_0004_IDX1) */ ROW_NUMBER () OVER (ORDER BY ( t4.f0004_028n- t4_b.f0004_028n) DESC) no_,
t4.f0004_005v stock_code, t5.f0005_002v stock_name,
t4.f0004_007n price_,
t4.f0004_028n - t4_b.f0004_028n money_flow_5,
t55.f0055_002v AS business
FROM tb_ori_0004 t4
INNER JOIN
(SELECT /*+ index(tb_ori_0004 TB_ORA_0004_IDX1) */ f0004_005v, f0004_003v, f0004_004v,
MAX (f0004_002v) f0004_002v
FROM tb_ori_0004
WHERE f0004_001d = (SELECT MAX (f0076_001d)
FROM tb_ori_0076)
GROUP BY f0004_005v, f0004_003v, f0004_004v) t
ON t4.f0004_003v = t.f0004_003v
AND t4.f0004_004v = t.f0004_004v
AND t4.f0004_005v = t.f0004_005v
AND t4.f0004_002v = t.f0004_002v
AND t4.f0004_001d = (SELECT MAX (f0076_001d)
FROM tb_ori_0076)
INNER JOIN tb_ori_0004 t4_b
ON t4_b.f0004_003v = t.f0004_003v
AND t4_b.f0004_004v = t.f0004_004v
AND t4_b.f0004_005v = t.f0004_005v
AND t4_b.f0004_002v =TO_CHAR (TO_DATE (t.f0004_002v, 'HH24MI') - 4 / (24 * 60),
'HH24MI'
)
AND t4.f0004_001d = t4_b.f0004_001d
INNER JOIN tb_public_0005 t5
ON t4.f0004_003v = t5.f0005_007v
AND t4.f0004_004v = t5.f0005_005v
AND t4.f0004_005v = t5.f0005_001v
INNER JOIN
(SELECT t.f0056_003v, t.f0056_002n
FROM tb_index_0056 t
WHERE t.f0056_001d = (SELECT MAX (t.f0056_001d)
FROM tb_index_0056 t)) t6
ON t6.f0056_003v = t5.f0005_001v
INNER JOIN
(SELECT t.f0055_001n, t.f0055_002v
FROM tb_index_0055 t
WHERE t.f0055_003v = '新申万一级') t55
ON t55.f0055_001n = t6.f0056_002n
)WHERE no_ <=30;
分享到:
相关推荐
SQLT,全称为SQL Trace Toolkit,是由Oracle官方提供的一个强大的数据库性能分析工具。它主要用于帮助DBA(数据库管理员)和开发人员深入理解SQL语句在数据库中的执行过程,从而进行性能调优。这个工具能够生成详细...
为提高oracle的sql执行效率,优化性能,通过oracle表分析功能进行调整,能加快sql查询效率2倍以上
Oracle SQLHC,全称为SQL Health Check,是一款针对Oracle数据库的SQL优化分析工具。它通过深入分析SQL查询的执行计划和性能指标,帮助DBA(数据库管理员)找出性能瓶颈,优化数据库查询,提升系统整体性能。 SQL...
《基于成本的Oracle优化法则》是数据库专家Jonathan Lewis的一部经典著作,该书深入探讨了Oracle数据库的性能优化策略,特别是在成本基础优化方面。Oracle数据库是全球广泛使用的大型企业级数据库系统,其性能优化...
Oracle优化设计方案旨在提升数据库性能,确保数据安全,便于管理和开发。设计Oracle数据库时,需要遵循一系列基本原则和步骤。 首先,逻辑建模是根据系统需求分析数据间的内在和外在关系,构建整个系统的数据结构。...
本篇分析将基于盖国强先生的著作《Oracle优化器案例与原理分析》进行深入探讨。 首先,盖国强先生是业界资深的Oracle专家,作为国内第一个Oracle ACE及ACE总监,他拥有超过十年的Oracle从业经验,并且至今仍然活跃...
ORACLE数据库参数优化与分析 ORACLE数据库参数优化与分析 ORACLE数据库参数优化与分析 ORACLE数据库参数优化与分析 ORACLE数据库参数优化与分析 ORACLE数据库参数优化与分析
### Oracle优化重量级知识点解析 #### 一、Oracle优化的重要性 在数据库管理领域,Oracle数据库因其卓越的性能、稳定性和安全性而被广泛采用。然而,随着业务量的增长和技术的发展,即使是像Oracle这样的顶级...
在Oracle SQL优化方面,有多种策略和原则可以提升查询效率,降低资源消耗,以下是一些核心的Oracle优化原则和方法: 1. **索引优化**:索引是提升查询速度的关键。合理创建和使用索引能显著提高数据检索的速度。B树...
"Oracle优化教程"旨在帮助各种水平的用户,无论是初学者还是经验丰富的专业人士,都能深入理解并掌握Oracle数据库的优化技巧,从而提升系统效率,减少资源消耗,提高应用程序的响应速度。 首先,我们从"oracle9i...
本文将深入探讨"性能优化案例分析与Oracle语句优化53个规则详解"这一主题,涵盖Oracle语句优化、数据库优化以及SQL优化的关键知识点。 首先,Oracle语句优化是提升系统性能的核心手段之一。在"Oracle语句优化53个...
Oracle数据库性能优化是确保系统高效运行的关键环节,尤其是在大数据量和高并发的环境中。Oracle数据库因其先进、完整和集成的特性,在市场中占据主导地位,因此深入理解和掌握Oracle的优化技术至关重要。 首先,...
Oracle优化PPT教程通常会涵盖一系列关键概念和技术,旨在提高数据库的运行效率,减少资源消耗,提升用户体验。以下是对这个教程可能涉及的知识点的详细解释: 1. **SQL优化**:这是Oracle数据库优化的核心,涉及到...
Oracle优化是数据库管理中的关键环节,它涉及到性能提升、资源有效利用和系统稳定性等多个方面。在给定的压缩包文件中,我们找到了四个与Oracle优化密切相关的文档:ArcSDE for Oracle优化配置和调整初步、oracle...
本篇将围绕"Oracle 优化 金牌 DBA 日记"这一主题,深入探讨Oracle数据库优化的相关知识点。 1. **索引优化**:索引是提升查询性能的关键工具。金牌DBA会根据查询模式和数据分布情况创建和维护索引,如B树索引、位图...
### Oracle优化方法与实践 #### 一、优化器模式选择 在进行Oracle数据库优化时,首先需要关注的是优化器模式的选择。Oracle提供了多种优化器模式,包括基于规则的优化器(RULE)、基于成本的优化器(COST)以及...
oracle 优化是一种复杂的任务,需要对数据库的结构、数据分布、查询模式等进行深入的分析和理解。 在进行 Oracle 优化时,需要考虑以下几个方面: * 数据库配置优化:包括内存分配、磁盘分配、网络配置等。 * 索引...
### Oracle数据库性能分析 #### 一、Oracle体系结构 Oracle数据库是一个复杂且功能强大的...通过以上几个方面的深入理解和实践,你可以更好地掌握Oracle数据库性能分析的基本方法,从而有效地管理和优化数据库性能。