`
Fred_Han
  • 浏览: 147045 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle 表分析说明

 
阅读更多

一、     表分析概念

1.  简单的说,就是收集表和索引的信息,CBO(SQL优化器)根据这些信息决定SQL最佳的执行路径。通过对表的分析,可以产生一些统计信息,通过这些信息oracle的优化程序可以优化。

1)     收集统计信息的目的是为了使基于 CBO(SQL优化器)的执行计划更加准确。

2)     分析的结果数据[all_tables]有什么用,要看Oracle初始化参数 optimal_mode 怎么设置的。

3)     分析更新表的统计信息,,有可能导致执行计划改变

2.  analyzedbms_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动态性能表的结构、功能以及如何使用它们来分析数据库性能。 首先,Oracle动态性能表主要由一系列以“V$”开头的视图组成,如V$SESSION、V$SYSTEM_EVENT、V$BUFFER_CACHE等。每个V$视图代表一...

    ORACLE常用分析函数说明

    ORACLE 常用分析函数说明 Oracle 分析函数从 8.1.6 版本开始提供,是一种计算基于组的聚合值的函数。它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。 开窗函数是分析函数工作的...

    Oracle数据块结构分析说明BLOCK结构详解

    数据块结构的分析说明是数据库管理与优化工作中不可或缺的一环。 在Oracle中,数据块的大小可配置,例如文档中提到的blocksize:8192字节,即Oracle数据块可以设置为8KB大小。数据块内部又分为不同的区域,包括数据...

    oracle Rule分析及说明文档.doc

    Oracle Rule分析涉及的是数据库管理中的重要方面,尤其是针对PL/SQL代码的优化和最佳实践。这些规则旨在提高代码的效率、可维护性和避免潜在的错误。以下是对这些规则的详细说明: 1. **CodeXpert Rule 2601 - 确保...

    oracle索引分析说明

    本文将深入探讨Oracle索引的使用、存储原理以及如何分析索引效率,特别是通过`clustering_factor`这个指标来评估索引的性能。 首先,让我们理解索引的工作原理。在Oracle中,索引是一种特殊的数据库对象,它为表的...

    Oracle 数据库监听分析及其说明

    ### Oracle 数据库监听分析及其说明 #### 概述 Oracle 数据库监听器是数据库系统中的一个关键组件,它负责管理数据库实例与客户端应用程序之间的网络连接。通过监听特定的端口,监听器能够接收来自客户端的连接...

    Oracle数据库表结构导出工具Excel

    3. **数据库选择与表筛选**:说明如何在众多数据库和表中选择需要导出的特定对象。 4. **导出选项**:描述可以自定义的导出设置,如是否包含注释、触发器、存储过程等,并可以选择导出的字段格式。 5. **执行导出*...

    Oracle数据库官方文档说明

    这份“Oracle数据库官方文档说明”提供了全面深入的学习材料,旨在帮助用户快速理解和掌握Oracle数据库的相关知识。以下是对Oracle数据库核心概念、功能和操作的详细解释。 1. **Oracle数据库结构**:Oracle数据库...

    oracle表结构查询命令

    - `last_analyzed`:表最后一次被分析的时间。 ##### 2. 查询表对象信息 **命令格式**: ```sql SELECT * FROM all_objects; ``` **说明**: - `all_objects`:提供了更详细的信息,如对象类型、创建时间等。 **...

    oracle分析函数文档

    ### Oracle分析函数详解 #### 一、概述 Oracle分析函数是一种强大的工具,它允许用户对分组数据执行复杂的计算,并且结果可以根据特定条件进行动态调整。这种灵活性使得Oracle分析函数在处理复杂的数据集时非常...

    Oracle表结构导出工具Excel.rar

    在日常数据库管理工作中,有时我们需要将Oracle表结构导出,以便进行备份、迁移或分析。"Oracle表结构导出工具Excel.rar"就是针对这一需求提供的一种解决方案。 这个压缩包包含两个文件:"DBExport For ORACLE 使用...

    Oracle系统权限说明

    - `ANALYZE`: 对任意表、索引或簇执行分析操作,以获取性能信息。 - `AUDIT ANY`: 为任何数据库对象设置审计选项,用于追踪操作。 - `AUDIT SYSTEM`: 开启系统级别的审计,记录系统级别的操作。 - `BACKUP ANY ...

    企业oracle数据分析岗位面试题

    ### 企业Oracle数据分析岗位面试题解析 #### 一、数据库系统的认知 - **知识点解析**: - **数据库系统概述**:数据库系统是指用于管理和处理数据的软件集合,包括数据库管理系统(DBMS)以及相关应用软件和服务...

    达梦和oracle的差异说明

    通过以上分析可以看出,尽管达梦数据库旨在兼容Oracle的部分功能,但在实际应用中仍需注意两者之间的差异,特别是在字段名处理、数据类型使用、语法关键字等方面。了解这些差异有助于更好地利用这两种数据库系统,并...

    oracle数据块结构分析说明

    "Oracle数据块结构分析说明" Oracle 数据块结构是 Oracle 数据库存储数据的基本单元。一个数据块(Block)是 Oracle 数据库中的最小存储单元,它是数据文件(Datafile)中的一部分。每个数据块的大小可以是 2k、4k...

    深入分析oracle日志文件

    深入分析 Oracle 日志文件 Oracle 日志文件是 Oracle 数据库管理员 (DBA) 实现数据库恢复和追踪用户操作的重要工具。通过分析 Oracle 日志文件,可以追踪用户的恶意操作、恢复误删除的数据、执行事后审计等。Oracle...

    (精选)ORACLE(甲骨文)导出科目余额表与凭证表操作说明及截图.pdf

    在Oracle(甲骨文)数据库管理系统中,导出科目余额表和凭证表是会计信息系统日常管理的重要环节。这些操作主要用于数据分析、财务报表制作以及审计需求。以下是对导出这两个关键表格的操作步骤的详细说明: 首先,...

    ORACLE分析函数.pdf

    以下是对Oracle分析函数的详细说明,以及如何使用它们。 1. 自动汇总(ROLLUP, CUBE) ROLLUP用于生成数据的多级汇总,从最细粒度到最粗粒度。例如,可以计算每个区域、每个网络类型以及整个数据集的总本地费用。...

    oracle AWR性能分析详解

    Oracle AWR(Automatic Workload Repository)性能分析详解 AWR是Oracle数据库中的一个自动负载信息库,它通过收集数据库的统计信息,帮助DBA们分析并诊断数据库的性能问题。自从Oracle 10g版本起,AWR就成为了性能...

Global site tag (gtag.js) - Google Analytics