`
adamzhao
  • 浏览: 100941 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

analyze 分析表

阅读更多
oracle的联机文档描述了analyze的做用:
Use the ANALYZE statement to collect non-optimizer statistics, for example, to:

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.

dbms_stats的作用主要是替代analyze的收集统计信息这一块的功能,且在这一方面做了相当大程度上的增强。

以你的analyze table abc compute statistics;这条为例,生成的统计信息会存在于user_tables这个视图,查看一下select * from user_tables where table_name='ABC';
观察一下NUM_ROWS,BLOCKS,AVG_SPACE,AVG_ROW_LEN几列你就会明白,这就是变化。

收集统计信息的目的是为了使基于CBO的执行计划更加准确。

=============================================================

分析完表之后,你会发现DBA_tables 视图中,以前很多列值是空的,现在开始有数据了。这些数据就是你分析表得到的。至于这些数据有什么用,要看你的初始化参数optimal_mode 怎么设置的,详细内容请查看相关文档!
=============================================================

[Q]怎么样分析表或索引
[A]命令行方式可以采用analyze命令
如Analyze table tablename compute statistics;
Analyze index|cluster indexname estimate statistics;
ANALYZE TABLE tablename COMPUTE STATISTICS
FOR TABLE
FOR ALL [LOCAL] INDEXES
FOR ALL [INDEXED] COLUMNS;
ANALYZE TABLE tablename DELETE STATISTICS
ANALYZE TABLE tablename VALIDATE REF UPDATE
ANALYZE TABLE tablename VALIDATE STRUCTURE
[CASCADE]|[INTO TableName]
ANALYZE TABLE tablename LIST CHAINED ROWS [INTO TableName]
等等。
如果想分析整个用户或数据库,还可以采用工具包,可以并行分析
Dbms_utility(8i以前的工具包)
Dbms_stats(8i以后提供的工具包)

dbms_stats.gather_schema_stats(User,estimate_percent=>100,cascade=> TRUE);
dbms_stats.gather_table_stats(User,TableName,degree => 4,cascade => true);
这是对命令与工具包的一些总结
1、对于分区表,建议使用DBMS_STATS,而不是使用Analyze语句。
a) 可以并行进行,对多个用户,多个Table
b) 可以得到整个分区表的数据和单个分区的数据。
c) 可以在不同级别上Compute Statistics:单个分区,子分区,全表,所有分区
d) 可以倒出统计信息
e) 可以用户自动收集统计信息
2、DBMS_STATS的缺点
a) 不能Validate Structure
b) 不能收集CHAINED ROWS, 不能收集CLUSTER TABLE的信息,这两个仍旧需要使用Analyze语句。
c) DBMS_STATS 默认不对索引进行Analyze,因为默认Cascade是False,需要手工指定为True
3、对于oracle 9里面的External Table,Analyze不能使用,只能使用DBMS_STATS来收集信息。

Reference:
http://www.itpub.net/489269.html
分享到:
评论

相关推荐

    六西格玛Analyze分析阶段.pptx

    六西格玛Analyze分析阶段.pptx

    Analyze_Oracle_Table.rar_Table_analyze orac_analyze orac_oracle

    因此,定期分析表和索引有助于确保Oracle知道哪些索引是有效的,并且可以利用它们来加速查询。 "orac_analyze"和"oracle_analyze_tab"可能是指Oracle中的DBMS_STATS包,这是一个PL/SQL包,提供了用于收集和管理统计...

    自动生成oracle数据库表分析语句

    通过分析表和索引,Oracle可以更新统计信息,这些信息将被查询优化器用于选择最佳的执行计划。本文将详细介绍如何自动生成表分析SQL语句和索引分析SQL语句。 #### 表分析语句 表分析语句主要用于更新表的统计信息...

    编译原理 预测分析表

    "编译原理 预测分析表" 编译原理预测分析表是编译器设计中的一种重要技术,用于语法分析和语义分析。预测分析表是根据文法推导出的一种表格,用于指导语法分析的过程。 预测分析表的构造方法有多种,常见的有两种...

    编译原理——预测分析表

    2. **多维数组存储预测分析表**:预测分析表可以使用三维数组`char analyze_table[10][10][10]`或二维数组`char* analyze_table[10][10]`来构建。数组中的元素值存放语法规则的编号,若值为-1,则表示遇到错误情况。...

    QGroundControl Analyze 模块 源码

    QGroundControl Analyze模块是地面控制站软件QGroundControl的核心组件之一,它专注于处理和分析来自无人机的传感器原始数据。这个模块的源码对于深入理解无人机系统的运行机制、优化飞行性能以及进行定制化开发具有...

    前端开源库-analyze-css

    《analyze-css:深入理解前端CSS分析与优化》 在当今的Web开发中,前端性能是决定用户体验的关键因素之一,而CSS作为构建网页样式的核心技术,其优化显得尤为重要。"analyze-css"是一个强大的开源库,专为前端...

    02GB_Analyze统计分析.pptx

    【02GB_Analyze统计分析】是一份关于六西格玛改进过程的PPT文档,主要探讨了在分析阶段(Analyze Phase)如何通过统计方法和工具来挖掘问题的根本原因,以便实现突破性的改善。六西格玛是一种质量管理方法,旨在减少...

    vss批量analyze,很好用的!

    - **灵活性高**:可以通过修改批处理文件中的命令来适应不同的分析需求,例如调整 `analyze` 命令的参数等。 #### 总结 通过上述步骤,我们可以轻松地利用 VSS 的 `analyze` 功能批量处理多个项目。这对于需要...

    ANALYZE FORMAT 文档资料~

    ### Analyze Format:一种用于MRI图像存储的专用格式 #### 一、概述 Analyze Format是一种专门用于存储医学影像数据...对于开发者而言,理解Analyze Format的基本结构和工作原理对于处理和分析MRI图像数据至关重要。

    mysql page analyze

    "mysql page analyze"是一个专门用于分析InnoDB存储引擎表空间中页面类型和信息的工具,由知名MySQL专家姜承尧所编写。这个工具可以帮助数据库管理员和开发人员更深入地理解数据存储结构,从而优化查询效率和数据库...

    analyze.js:JavaScript 代码的动态分析

    分析.js analyze.js 是一种分析依赖于 node 或 JavaScript 或任何编译为 JavaScript 的语言的应用程序的工具。 动态分析过程侧重于协议函数调用以及确定模块依赖性和各种运行时特征。 analysis.js 包括: 一个后端,...

    convert_matlab下dicom转analyze_GUIHIMTconvert_dicomanalyze_

    总之,"convert_matlab下dicom转analyze_GUIHIMTconvert_dicomanalyze_" 是一个用于医学图像处理的实用工具,通过MATLAB的GUI界面,帮助用户方便快捷地将大量DICOM图像转换为ANALYZE格式,满足了医学研究和分析的...

    前端开源库-analyze-desumasu-dearu

    "analyze-desumasu-dearu"是一个专注于前端开发的开源库,其主要目标是对德马苏·迪鲁(Desumasu Dearu)进行分析,同时也涉及到了文敬体和常体的解析。下面我们将详细探讨这个开源库以及相关的前端知识点。 首先,...

    centos7 应用笔记: systemd-analyze 分析开机过程

    centos7 应用笔记: systemd-analyze 分析开机过程 centos7 是使用 systemd 管理服务的。 如果 开机很慢。可以使用 systemd-analyze 分析开机过程。 使用 systemd-analyze 分析开机过程 # 打印耗时的服务 systemd-...

    实验4-5预测分析表方法(1).doc

    【实验4-5预测分析表方法】主要涉及编译原理中的预测分析技术,特别是与语法分析相关的内容。预测分析表是编译器设计中的一个重要工具,用于指导词法分析后的语法分析过程。在这个实验中,我们将学习如何构建和使用...

    前端开源库-analyze-deps

    "analyze-deps" 是一个专为前端开发者设计的开源工具,旨在帮助用户分析并管理他们的 `package.json` 文件中的依赖项,确保它们与最新的可用版本相匹配。这个工具能够自动化这个过程,提升项目的维护效率。 首先,...

    SIEMENS西门子Analyze MyWorkpiece-Monitor操作手册.pdf

    2. **导入 Capture 数据**:这部分内容可能会介绍如何将生产过程中的数据(Capture 数据)导入到Analyze MyWorkpiece工具中,以便进行后续的分析和监控。 3. **生成 Training Data Unit-Sets**:这一步骤可能涉及...

    Real-Time Analytics Techniques to Analyze

    标题“Real-Time Analytics Techniques to Analyze”中蕴含的知识点主要包括实时数据分析的各个技术面。描述部分则强调了实时大数据分析的重要性,以及对大数据学习者的价值。标签“storm spark flume”则直接指明了...

    Oracle表删除大量数据(千万)后查询变慢问题(原因分析)

    接着,使用 analyze table 语句重新分析表的统计信息,以便提高查询效率。 analyze 语句的作用是收集表的统计信息,以便优化查询效率。analyze 语句有多种形式,例如 analyze table tablename compute statistics,...

Global site tag (gtag.js) - Google Analytics