DML性能低下,其中最严重的原因之一是无用索引的存在。所有SQL的插入,更新和删除操作在它们需要在每一行数据被改变时修改大量索引的时候会变得更慢。
许多Oracle 管理人员只要看见在一个SQL 查询的WHERE语句出现了一列的话就会为它分配索引。虽然这个方法能够让SQL运行得更快速,但是基于功能的Oracle 索引使得数据库管理人员有可能在数据表的行上过度分配索引。过度分配索引会严重影响关键Oracle 数据表的性能。
在Oracle9i出现以前,没有办法确定SQL查询没有使用的索引。让我们看看Oracle9i提供了什么样的方法让你找到这些索引并删除它们。
过程是相当简单的。Oracle9i有一个工具能够让你使用ALTER INDEX命令监视索引的使用。然后你可以查找这些没有使用的索引并从数据库里删除它们。
下面是一段脚本,它能够打开一个系统中所有索引的监视功能:
set pages 999;
set heading off;
spoolrun_monitor.sql
select
'alter index '||owner||'.'||index_name||' monitoring usage;'
from dba_indexes
where owner not in ('SYS','SYSTEM','PERFSTAT');
spool off;
@run_monitor
你需要等待一段时间直到在数据库上运行了足够多的SQL语句以后,然后你就可以查询新的V$OBJECT_USAGE视图。
select index_name, table_name, mon, used
from v$object_usage;
在V$OBJECT_USAGE有一列被称作USED,它的值是YES或者NO。不幸的是,它不会告诉你Oracle使用了这个索引多少次,但是这个工具对于找出没有使用的索引还是很有用的。
分享到:
相关推荐
Oracle 索引监控是一种重要的数据库管理功能,它允许管理员监测数据库中索引的使用情况,以便优化数据库性能。在Oracle数据库中,索引能够显著提升查询效率,但不恰当的索引设计或冗余索引却可能导致诸多问题,如...
Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,对于其高效、稳定运行,监控显得尤为重要。"Oracle常用监控脚本"通常包含了多种用于检查数据库性能、资源使用情况以及问题排查的工具和脚本。这些脚本...
Oracle数据库的SGA(System Global Area)是数据库的内存缓冲区,用于存储数据库的数据和索引。监控SGA的内存分配信息可以帮助我们了解数据库的内存使用情况,从而优化数据库的性能。可以使用以下SQL语句来监控SGA的...
【Oracle 索引监控与未使用索引的查找】 在Oracle数据库管理中,了解索引的使用情况对于优化数据库性能至关重要。Oracle 9i引入了一个新特性——“识别未使用的索引”,通过`ALTER INDEX MONITORING USAGE`来监控...
Oracle数据库是世界上最广泛使用的数据库系统之一,其性能优化的一个关键因素就是索引的使用。索引可以帮助快速查找和访问数据库中的数据,显著提高查询效率。本篇将详细讲解Oracle数据库中的索引及其重要性。 一、...
Oracle索引是数据库管理系统中用于加速数据检索的关键结构。它们的工作原理类似于书籍的目录,允许数据库系统快速定位和访问特定的数据行,而无需扫描整个表。Oracle提供了多种类型的索引,包括B树索引、位图索引、...
### Oracle索引机制分析 #### 1. 基本索引概念 索引是数据库管理系统(DBMS)为了加快数据检索速度而采用的一种数据结构。Oracle提供了多种类型的索引,每种索引都有其特定的优势和适用场景。索引的基本目的是通过...
在Oracle数据库管理中,性能监控是一项至关重要的任务,它确保系统的稳定运行,提高查询效率,减少资源浪费。Oracle性能监控涉及多个层面,包括SQL查询优化、系统资源使用情况监控、数据库活动跟踪等。以下是对...
Oracle提供了多种方法来监控索引,包括通过v$索引视图和动态性能视图(如v$sysstat, v$session_longops等)。 在Oracle 10g中,当执行DBMS_STATS包中的GATHER_SCHEMA_STATS或GATHER_TABLE_STATS等过程时,索引的...
### Oracle索引失效的原因及解决方法 在Oracle数据库中,索引是提高查询效率的关键工具之一。然而,在实际的应用过程中,由于多种原因可能会导致索引失效,从而影响系统的性能。本文将详细介绍Oracle索引失效的一些...
最后,监控和分析索引的使用情况也是很重要的。通过DBA_INDEXES、DBA_IND_COLUMNS等视图,可以查看索引的相关统计信息,评估索引的效能,以便于调整和优化索引策略。 综上所述,Oracle数据库的索引创建是一个涉及多...
- **监控索引使用情况**: 使用Oracle的工具如AWR报告来监控索引的使用情况,识别未被充分利用的索引并进行调整。 - **避免频繁修改索引列**: 对索引列频繁进行UPDATE、INSERT或DELETE操作会导致索引碎片化,影响性能...
在当前的IT环境中,Oracle数据库作为关系型数据库管理系统的重要组成部分,它的监控和运维管理显得尤为重要。有效的监控不仅可以帮助数据库管理员(DBA)及时发现并解决问题,还可以提高数据库的性能和稳定性,确保...
16.用户下所有索引 17.SGA命中率 18.SGA字典缓冲区命中率 19.SGA共享缓冲区命中率 20.SGA重做日志缓冲区命中率 21.内存和硬盘排序比率 22.正在运行的SQL语句 23.字符集 24.MTS 25.碎片程度高的表 26.使用CPU多的用户...
Oracle数据库是全球广泛使用的数据库管理系统,对于其性能监控是DBA日常工作中不可或缺的部分。本资料集包含了Oracle性能监控的一些常用语句,旨在帮助用户更好地理解和优化数据库性能。以下是这些语句的主要类别...
### Oracle性能监控SQL语句详解 #### 一、分析表 **知识点:** - **Table Analysis:** - 使用`ANALYZE TABLE`命令来收集表及其索引的统计信息,这对于优化器做出正确的执行计划决策至关重要。 - `ANALYZE ...
总的来说,监控Oracle索引的使用是数据库性能调优的重要一环。从Oracle 8i到9i的改进,表明Oracle数据库系统不断优化其管理和分析工具,以帮助管理员更好地理解和优化数据库的运行。理解并掌握这些监控方法,将有助...
通过对索引的状态进行监控,并定期进行碎片整理,可以有效提升数据库的整体性能。使用`ALTER INDEX`命令进行索引重建是一种简单而有效的解决方法。在执行重建操作时,应注意选择合适的时间窗口,并确保有足够的资源...