一、 表分析概念
1. 简单的说,就是收集表和索引的信息,CBO(SQL优化器)根据这些信息决定SQL最佳的执行路径。通过对表的分析,可以产生一些统计信息,通过这些信息oracle的优化程序可以优化。
1) 收集统计信息的目的是为了使基于 CBO(SQL优化器)的执行计划更加准确。
2) 分析的结果数据[all_tables]有什么用,要看Oracle初始化参数 optimal_mode 怎么设置的。
3) 分析更新表的统计信息,,有可能导致执行计划改变
2. 用analyze或dbms_stats包做统计表的的分析,分析可以判断表的使用情况,比如行迁移情况、表的资料量情况等,如:
1) select * from all_tables where table_name='TEMP_TABLE';(表名一定要大写)
如果对该表没有做过统计分析,则查询的大部分栏位值都为空
2) analyze table tableName compute statistics;
执行时间与表的数据量有关
3) select * from all_tables where table_name=' TEMP_TABLE ';
之前为空的部分字段,现在查询已经有值
3. oracle的联机文档描述了analyze的做用:
Use the ANALYZE statement to collect non-optimizer statistics, for example, to: --使用analyze功能可以收集一些没有进行优化的统计信息,例如: Collect or delete statistics about an index or index partition, table or table partition, --聚集或删除索引或索引分区,表或表分区 index-organized table, cluster, or scalar object attribute. --索引表,串,或游标的目标属性等统计信息 Validate the structure of an index or index partition, table or table partition, index-organized table, --增加下列结构的有效性:索引或索引分区,表或表分区,索引表 cluster, or object reference (REF). --串,目标参照 Identify migrated and chained rows of a table or cluster. --鉴别一个表或串中已经被移动的抑或被锁住的列。 |
4. dbms_stats包的作用主要是替代analyze的收集统计信息这一块的功能,且在这一方面做了相当大程度上的增强。
5. 带有ESTIMATE选项的ANALYZE操作对于一 些表能够产生不正确的结果,尤其是那些取样较小的表。这不是个BUG,而是每个统计取样方法的特性。如果所选取样不能代表整个数据集,你就不能期 待产生正确的统计。
6. 统计分析,在Oracle 10G中能够保存列值的分布信息
7. 在考虑表分析时,需要考虑如下问题:
1) 对一个带索引的表的ANALYZE,将分析其相关索引。
2) 如果你对一个表进行ANALYZE ... ESTIMATE 分析,那么然后在其相关索引上做ANALYZE COMPUTE分析是很明智的。这样可以确保被索引字段的统计是准确的。
3) 分析索引不用到临时表空间
4) 如果分析一个索引而不分析其基表,在这一单一基础上CBO不会被选中如果你需要使用ESTIMATE- 估计(例如,由于时间的限制),建议你在几个不同的取样大小上进行 ANALYZE ... ESTIMATE, 来 确定每个对象的理想的取样大小。总的目标是找到一个能在最短的时间内产生准确的统计的取样大小。较好的开始点是 10% - 15%
5) 进行超过50%的ANALYZE ... ESTIMATE 就会导致/变成ANALYZE ... COMPUTE。
相关推荐
本文将深入探讨Oracle动态性能表的结构、功能以及如何使用它们来分析数据库性能。 首先,Oracle动态性能表主要由一系列以“V$”开头的视图组成,如V$SESSION、V$SYSTEM_EVENT、V$BUFFER_CACHE等。每个V$视图代表一...
ORACLE 常用分析函数说明 Oracle 分析函数从 8.1.6 版本开始提供,是一种计算基于组的聚合值的函数。它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。 开窗函数是分析函数工作的...
数据块结构的分析说明是数据库管理与优化工作中不可或缺的一环。 在Oracle中,数据块的大小可配置,例如文档中提到的blocksize:8192字节,即Oracle数据块可以设置为8KB大小。数据块内部又分为不同的区域,包括数据...
Oracle Rule分析涉及的是数据库管理中的重要方面,尤其是针对PL/SQL代码的优化和最佳实践。这些规则旨在提高代码的效率、可维护性和避免潜在的错误。以下是对这些规则的详细说明: 1. **CodeXpert Rule 2601 - 确保...
本文将深入探讨Oracle索引的使用、存储原理以及如何分析索引效率,特别是通过`clustering_factor`这个指标来评估索引的性能。 首先,让我们理解索引的工作原理。在Oracle中,索引是一种特殊的数据库对象,它为表的...
### Oracle 数据库监听分析及其说明 #### 概述 Oracle 数据库监听器是数据库系统中的一个关键组件,它负责管理数据库实例与客户端应用程序之间的网络连接。通过监听特定的端口,监听器能够接收来自客户端的连接...
3. **数据库选择与表筛选**:说明如何在众多数据库和表中选择需要导出的特定对象。 4. **导出选项**:描述可以自定义的导出设置,如是否包含注释、触发器、存储过程等,并可以选择导出的字段格式。 5. **执行导出*...
这份“Oracle数据库官方文档说明”提供了全面深入的学习材料,旨在帮助用户快速理解和掌握Oracle数据库的相关知识。以下是对Oracle数据库核心概念、功能和操作的详细解释。 1. **Oracle数据库结构**:Oracle数据库...
- `last_analyzed`:表最后一次被分析的时间。 ##### 2. 查询表对象信息 **命令格式**: ```sql SELECT * FROM all_objects; ``` **说明**: - `all_objects`:提供了更详细的信息,如对象类型、创建时间等。 **...
### Oracle分析函数详解 #### 一、概述 Oracle分析函数是一种强大的工具,它允许用户对分组数据执行复杂的计算,并且结果可以根据特定条件进行动态调整。这种灵活性使得Oracle分析函数在处理复杂的数据集时非常...
在日常数据库管理工作中,有时我们需要将Oracle表结构导出,以便进行备份、迁移或分析。"Oracle表结构导出工具Excel.rar"就是针对这一需求提供的一种解决方案。 这个压缩包包含两个文件:"DBExport For ORACLE 使用...
- `ANALYZE`: 对任意表、索引或簇执行分析操作,以获取性能信息。 - `AUDIT ANY`: 为任何数据库对象设置审计选项,用于追踪操作。 - `AUDIT SYSTEM`: 开启系统级别的审计,记录系统级别的操作。 - `BACKUP ANY ...
### 企业Oracle数据分析岗位面试题解析 #### 一、数据库系统的认知 - **知识点解析**: - **数据库系统概述**:数据库系统是指用于管理和处理数据的软件集合,包括数据库管理系统(DBMS)以及相关应用软件和服务...
通过以上分析可以看出,尽管达梦数据库旨在兼容Oracle的部分功能,但在实际应用中仍需注意两者之间的差异,特别是在字段名处理、数据类型使用、语法关键字等方面。了解这些差异有助于更好地利用这两种数据库系统,并...
"Oracle数据块结构分析说明" Oracle 数据块结构是 Oracle 数据库存储数据的基本单元。一个数据块(Block)是 Oracle 数据库中的最小存储单元,它是数据文件(Datafile)中的一部分。每个数据块的大小可以是 2k、4k...
深入分析 Oracle 日志文件 Oracle 日志文件是 Oracle 数据库管理员 (DBA) 实现数据库恢复和追踪用户操作的重要工具。通过分析 Oracle 日志文件,可以追踪用户的恶意操作、恢复误删除的数据、执行事后审计等。Oracle...
在Oracle(甲骨文)数据库管理系统中,导出科目余额表和凭证表是会计信息系统日常管理的重要环节。这些操作主要用于数据分析、财务报表制作以及审计需求。以下是对导出这两个关键表格的操作步骤的详细说明: 首先,...
以下是对Oracle分析函数的详细说明,以及如何使用它们。 1. 自动汇总(ROLLUP, CUBE) ROLLUP用于生成数据的多级汇总,从最细粒度到最粗粒度。例如,可以计算每个区域、每个网络类型以及整个数据集的总本地费用。...
Oracle AWR(Automatic Workload Repository)性能分析详解 AWR是Oracle数据库中的一个自动负载信息库,它通过收集数据库的统计信息,帮助DBA们分析并诊断数据库的性能问题。自从Oracle 10g版本起,AWR就成为了性能...