在Oracle
数据库中,我们经常需要去手工分析表和索引,还有某个模式下所有的表和索引等等。oracle
提供了两种分析方法,分别是dbms_stats
包和analyze
命令。这些是我们在日常项目管理中的真实使用的方法,供参考。
在10g
中分析某一个用户下所有的对象,如user_miki
用户
sys.dbms_stats.gather_schema_stats(ownname => 'user_miki',estimate_percent => 30,method_opt => 'FOR ALL INDEXED COLUMNS SIZE AUTO',cascade => true,options => 'GATHER');
这是我在项目中分析一个用户所有对象的分析方法,取样比例为30%
,分析所有索引字段,生成柱形图,并且也分析索引。
(miki西游 @mikixiyou 文档,原文链接: http://mikixiyou.iteye.com/blog/1553986
)
在10g
中分析某一个用户下某一个表及其索引,如user_miki
用户下info
表和它的索引
execute dbms_stats.gather_table_stats(ownname => 'user_miki',tabname => 'info',estimate_percent => 30,method_opt => 'for all indexed columns size auto');
这是我在项目中单独分析一个用户中一张表的分析方法,取样比例为30%
,分析所有索引字段,生成柱形图,并且也分析索引。
我们在google
时,还能看到使用analzye
命令分析表的方法。
analyze table table_name compute statistics;
这个会将索引和表一起分析;
analyze table table_name compute statistics for table;
这个仅分析表;
analyze table table_name compute statistics for all columns;
这个仅分析表,和上面所有的字段,生成柱形图
analyze table table_name compute statistics for all indexed columns;
这个仅分析表,和上面所有建立索引的字段,生成柱形图
在9i
中,我们常常使用analyze
方法,在10g
以后,就改为dbms_stats.gather_schema_stats
类似的包来分析数据库对象了。
10g
的分析函数包比9i
的analyze
方法更灵活一些。
在10g
中,会有个系统的计划任务,每天10
点和周末两天都自动分析新的数据库对象和它认为统计信息已经过期的数据库对象。这个分析结果有时候不靠谱。
因此,我都采用10g
中提供的dbms_stats.gather_schema_stats
方法作为补充,设置一个计划任务定期去分析业务用户下所有数据库对象。
variable job number;
begin
sys.dbms_job.submit(job => :job,
what => 'sys.dbms_stats.gather_schema_stats(ownname => ''USR_MIKI'',estimate_percent => 30,method_opt => ''FOR ALL INDEXED COLUMNS SIZE AUTO'',cascade => true,options => ''GATHER'');',
next_date => to_date('16-12-2012 00:56:24', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'sysdate+7');
commit;
end;
/
例如,设置为每周六运行一次。
分享到:
相关推荐
Oracle数据库锁机制可以分为六种模式:null空、Row-S共享、Row-X行专用、Share共享锁、S/Row-X共享行专用、Exclusive专用。 其中,null空锁是最基本的锁机制,不影响其他操作;Row-S共享锁是用于查询操作的锁,允许...
### ORACLE数据库笔试题解析及知识点总结 #### 一、选择题解析 1. **算法的执行效率与数据的存储结构无关** - **解析**: 正确选项为 **C**。算法的执行效率与数据的存储结构密切相关。例如,数组与链表在查找、...
【Oracle数据库巡检模板】 Oracle数据库的健康检查与评估是维护数据库高效稳定运行的重要环节。巡检过程旨在发现潜在的问题,预防故障发生,并确保数据库系统的性能和可用性。以下是巡检的一些关键点: 1. **检查...
综上所述,Oracle数据库的索引优化涉及多个方面,包括正确选择和使用各种索引类型,理解索引的工作原理,以及编写能够有效利用索引的SQL查询。理解这些原理并应用到实际工作中,可以帮助我们优化数据库性能,避免...
本文重点分析Oracle数据库索引及临时表在查询中的应用,并探讨了基于索引使用SQL语句进行数据库效率优化的几种实现方法。 在Oracle数据库中,索引的合理运用能够显著提升查询速度,减少I/O操作,避免磁盘排序。通常...
【Oracle数据库模式对象的应用与管理】 Oracle数据库是全球广泛应用的关系型数据库系统,尤其在企业级数据存储和管理中占据重要地位。本文将深入探讨Oracle数据库中的模式对象及其管理,这对于优化数据库性能和提升...
在第13章中,我们可以预见到作者可能会详细讲解Oracle数据库的表空间和数据文件管理。表空间是Oracle存储数据的主要逻辑结构,它由一个或多个数据文件组成。这一章节可能涵盖了如何创建、扩展和管理表空间,以及如何...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据重要地位。"Oracle数据库速学"涵盖了从基础操作到实际工作中常见的问题,同时也包括了一些面试中可能遇到的题目,对于初学者来说是一...
在Oracle数据库中,索引是提高数据检索速度的关键工具。本讲义主要围绕索引的创建、类型以及管理展开,旨在帮助读者理解索引的重要性和使用方法。 1. **索引概述** - 索引是一种特殊的文件,用于快速访问数据库表...
**解析**: 在Oracle数据库中,数据字典是由一系列表和视图组成的,这些表和视图提供了关于数据库对象的信息,例如表、视图、索引等。数据字典主要存储在系统用户SYS的模式下。因此,正确的选项是D. SYS。 #### 三、默认...
【Oracle数据库实验报告】 在本实验报告中,我们将探讨Oracle数据库的配置、管理和维护过程,主要涉及以下几个关键知识点: 1. **监听程序配置**:Oracle数据库在运行前需要配置监听程序,通过...
然而,如果索引没有被正确地分析或统计数据不准确,CBO可能会选择全表扫描而非使用索引。此外,当查询语句包含特定的SQL特性,如子查询、函数或复杂的联接操作时,即使存在索引,也可能不会被使用。 例如,如果索引...
这包括数据库的基本概念,如表空间、数据文件、控制文件、重做日志文件等,它们构成了Oracle数据库的物理存储结构。理解这些概念有助于我们更好地管理数据库的空间和性能。 Oracle的数据类型是另一个关键点。包括...
从给定的文件信息来看,这是一本关于Oracle...通过以上分析,可以看出这本书全面覆盖了Oracle数据库的基础知识和进阶技能,从安装配置到高级管理,从SQL语句到PL/SQL编程,旨在培养读者成为熟练的Oracle数据库管理员。
### Oracle数据库日常维护手册知识点详解 #### 一、检查数据库基本状况 在Oracle数据库的日常维护中,确保数据库的基本状况良好是首要任务。这包括检查Oracle实例状态、Oracle服务进程和Oracle监听状态。 ##### ...
【数据库笔试题及答案】 1. 选择题的第1题涉及算法的性质。正确答案是C,算法的有穷性意味着它必须在有限步骤后结束。这与数据的存储结构(A)、算法程序的指令数量(B)或描述方式(D)无关。 2. 第2题中,线性...
- 了解不同类型的索引,如B树索引、位图索引、函数索引等,根据查询模式选择最适合的索引类型。 8. **索引覆盖**: - 如果查询只涉及索引中的列,Oracle可以直接从索引中获取数据,无需回表,称为索引覆盖。设计...
本文将详细分析Oracle数据库的性能优化目标和策略,为相关人员提供指导。 1. Oracle数据库优化目标 1.1 压缩数据库响应时间 响应时间是衡量数据库性能的重要指标,它指的是用户请求到获取结果之间的时间间隔。通过...
Oracle数据库优化是一个复杂而重要的主题,它涉及到许多层面,包括SQL查询优化、索引策略、内存管理、存储优化以及数据库架构调整。以下是对这些关键领域的详细介绍: 1. **SQL查询优化**:SQL是数据库操作的核心,...