一、sql_trace(SQL跟踪)
查看文件位置:show parameter user_dump_dest
设置:alter session set sql_trace=true;
查询结果:tkprof E:\ORACLE\PRODUCT\10.2.0\ADMIN\JJONE\UDUMP\jjone_ora_3600.trc sql1.txt
二、SQL Explain(SQL执行计划)
1)@?\rdbms\admin\utlxplan
2)set autotrace on/ set timing on/ set autotrace traceonly/set autotrace on explain
3) explain plan set statement_id='test1'
4) select plan_table_output from table(dbms_xplan.display('plan_table','test1','serial'));
三、实验
创建表空间:
create tablespace d1 datafile 'D:\oracle\oradata\orcl\d1.dbf' size 50M
create tablespace d2 datafile 'D:\oracle\oradata\orcl\d2.dbf' size 50M
创建表:
create table test(gcxh varchar2(16), hphm varhcar2(12), kkbh varchar2(12), gcsj date)
partition by range(gcsj)(
partition 20150901 values less than(to_date('2015-09-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace d1,
partition 20151001 values less than(to_date('2015-10-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) tablespace d1,
);
四、组合索引优化
创建组合索引顺序问题,索引前导列选择:
1) 少量等值列放前面
索引用用局部索引
create index indexName on(hphm) local;
删除索引
drop index indexName;
相关推荐
### Oracle索引优化相关知识点详解 #### 一、基本索引概念 在Oracle数据库中,索引是提高数据检索速度的重要工具。通过查询`DBA_INDEXES`视图,可以获取到当前数据库中所有表的所有索引信息。需要注意的是,如果...
Oracle索引优化是数据库性能调优的关键环节,它关乎到数据检索速度和整体系统的效率。在Oracle数据库中,索引的种类繁多,包括B*Tree索引、反向索引、降序索引、位图索引和函数索引等。理解并正确使用这些索引类型...
- **组合索引**: 如果WHERE子句中有多个条件,可以通过创建组合索引来提高查询效率。 - **查询条件的顺序**: WHERE子句中条件的顺序会影响索引的选择和使用,通常情况下,选择性更高的列应放在前面。 - **多表连接**...
在Oracle9i之前,除非查询中包含索引的第一列,否则无法使用组合索引。但在Oracle9i之后,引入了跳跃式扫描,使得即使不包含第一列,也能部分利用组合索引。 通过ROWID,Oracle能直接定位到表中的每一行。ROWID是一...
- Bitmap索引:适用于多列组合索引和在低基数(非唯一或重复值多)的列上,适合联接操作和分析查询。 - Function-Based索引:基于函数的结果创建索引,索引列是函数的输出。 - Reverse索引:反向键索引,用于存储...
在多个平等索引的情况下,Oracle会选择最优索引组合,但唯一性索引通常优先于非唯一性索引。等式比较通常优于范围比较,因为等式比较能直接通过索引定位到特定行。如果索引的优先级不明确,优化器通常只会选择WHERE...
Oracle约束和索引是数据库设计和优化的核心概念。通过正确地应用约束,可以确保数据的准确性和一致性;而合理地创建和管理索引,则能够显著提升查询速度,提高整体系统性能。作为数据库管理员或开发者,理解和熟练...
本文将深入探讨Oracle数据库中的索引优化原则和方法,这些原则和方法同样适用于其他数据库系统。让我们一起领略"SQL索引降龙十八掌"的精髓。 一、了解索引 1. 索引类型: - B树索引:最常见的索引类型,适用于等值...
在数据优化方面,合理使用索引可以极大地提高查询效率,但也需要根据具体场景选择合适的索引类型,如单列索引、组合索引和位图索引。组合索引允许在多列上创建索引,以匹配多条件查询,而位图索引则适合于数据重复...
位图索引则适用于低基数(即不同值较少)的列,或者在进行多列组合查询时,可以将多个位图索引合并,以提高查询效率。反向键索引适用于排序顺序与键值顺序相反的情况,如主键自增的情况。 当涉及数据操作,如删除、...
1. **INDEX SKIP SCAN**: 当创建了一个组合索引,但是查询只使用了索引的非第一列时,Oracle可能会选择不使用索引,因为它无法直接通过索引来定位数据。INDEX SKIP SCAN是一种优化策略,允许数据库跳过索引的第一个...
- **Group By字段的组合索引**:对于经常使用GROUP BY的SQL语句,建议在GROUP BY字段上创建组合索引,以提高查询效率。 #### 六、避免使用的索引情况 - **NOT IN** - **NOT BETWEEN** - **LIKE ‘%ABC%’** - ****...
在实际应用中,可以对经常一起使用多个字段进行检索的记录创建组合索引,组合索引的顺序也很重要。例如,将常用的列放在组合索引的最前面,可以提高查询时的索引有效性。同样,合并或拆分不必要的索引也是维护索引...
正确选择索引类型(如B树、位图、函数索引等),并合理创建组合索引,可以显著减少数据扫描的时间。 2. **执行计划分析**:通过EXPLAIN PLAN或DBMS_XPLAN工具,查看查询的执行路径,理解执行计划的逻辑,找出可能的...
2. **索引列的使用**:索引列或组合索引的首列必须出现在SQL语句的WHERE子句中,这是执行计划能够使用相关索引的必要条件之一。 3. **连接类型**:Oracle支持三种连接方式:排序合并连接(Sort Merge Join, SMJ)、...
如果INDEX_COMBINE中没有提供作为参数的索引,优化器会自动选择位图索引的布尔组合。 **示例**: ```sql SELECT /*+ INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI) */ * FROM BSEMPMS WHERE SAL ; ``` ##### 11. /*...
综上所述,Oracle数据库的索引优化涉及多个方面,包括正确选择和使用各种索引类型,理解索引的工作原理,以及编写能够有效利用索引的SQL查询。理解这些原理并应用到实际工作中,可以帮助我们优化数据库性能,避免...