[转] Oracle analyze 命令分析

转自:http://blog.sina.com.cn/s/blog_682841ba0101bncp.html

1.analyze table t1 compute statistics for table;  -->user_tables

(只对表的总体信息进行统计,比如行数多少等,不涉及到表字段)

2.analyze table t2 compute statistics for all columns;  -->user_tab_columns

(只会收集表字段信息)

3.analyze table t3 compute statistics for all indexed columns; -->user_tab_columns

(只会收集表中索引所在的字段信息)

4.analyze table t4 compute statistics for all indexes;à user_indexes

(只收集表索引的信息)

5.analyze table t5 compute statistics;

(收集表,表字段,索引的信息)

另外,可以删除分析数据:

SQL> analyze table my_table delete statistics;

SQL> analyze table my_table delete statistics for table for all indexes for all indexed columns;

例子:

create table t1 as select * from user_objects;

create table t2 as select * from user_objects;

create table t3 as select * from user_objects;

create table t4 as select * from user_objects;

create table t5 as select * from user_objects;

create table t6 as select * from user_objects;

create unique index pk_t1_idx on t1(object_id);

create unique index pk_t2_idx on t2(object_id);

create unique index pk_t3_idx on t3(object_id);

create unique index pk_t4_idx on t4(object_id);

create unique index pk_t5_idx on t5(object_id);

create unique index pk_t6_idx on t6(object_id);

<</B>刚建完表的时候>

(1) 查看表的统计信息

select table_name, num_rows, blocks, empty_blocks

from user_tables

where table_name in (‘T1‘, ‘T2‘, ‘T3‘, ‘T4‘, ‘T5‘,‘T6‘);

(2) 查看字段的统计信息

select table_name,

column_name,

num_distinct,

low_value,

high_value,

density

from user_tab_columns

where table_name in (‘T1‘, ‘T2‘, ‘T3‘, ‘T4‘,‘T5‘,‘T6‘);

(3) 查看索引的统计信息

select table_name,

index_name,

blevel,

leaf_blocks,

distinct_keys,

avg_leaf_blocks_per_key avg_leaf_blocks,

avg_data_blocks_per_key avg_data_blocks,

clustering_factor,

num_rows

from user_indexes

where table_name in (‘T1‘, ‘T2‘, ‘T3‘, ‘T4‘, ‘T5‘, ‘T6‘);

二.执行analyze命令

analyze table t1 compute statistics for table; --针对表收集信息

analyze table t2 compute statistics for all columns; --针对表字段收集信息

analyze table t3 compute statistics for all indexes columns; --收集索引字段信息

analyze table t4 compute statistics;       --收集表,表字段,索引信息

analyze table t5 compute statistics for all indexes;         --收集索引信息

analyze table t6 compute statistics for table for all indexes for all columns;   --收集表,索引,表字段信息

(1) 表的统计信息

select table_name, num_rows, blocks, empty_blocks

from user_tables

where table_name in (‘T1‘, ‘T2‘, ‘T3‘, ‘T4‘, ‘T5‘,‘T6‘);

(2) 表中字段的统计信息

select table_name,

column_name,

num_distinct,

low_value,

high_value,

density

from user_tab_columns

where table_name in (‘T1‘, ‘T2‘, ‘T3‘, ‘T4‘,‘T5‘,‘T6‘);

<</B>其中会收集T2的表字段信息,T3是索引所在字段信息,T4表字段信息,T6表字段信息>

 

(3) 索引的统计信息

没有变化,说明在创建索引的时候就ORACLE就已经收集相关信息

时间: 2024-11-10 08:14:24

[转] Oracle analyze 命令分析的相关文章

Oracle Analyze 命令 详解

官网的链接如下: http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_4005.htm#SQLRF01105 使用DBMS_STATS 收集统计信息参考: Oracle Statistic 统计信息 小结 http://blog.csdn.net/tianlesoftware/article/details/4668723 Oracle 判断 并 手动收集 统计信息 脚本 http://blog.csdn.net/ti

对于Oracle analyze table的使用总结 . 对于Oracle analyze table的使用总结 .

对于Oracle analyze table的使用总结 . 对于Oracle analyze table的使用总结 . analyze table 一般可以指定分析: 表,所有字段,所有索引字段,所有索引. 若不指定则全部都分析. SQL> analyze table my_table compute statistics; SQL> analyze table my_table compute statistics for table for all indexes for all colu

[转] Oracle analyze table 使用总结

转自:http://www.cnblogs.com/einyboy/archive/2012/08/09/2630321.html analyze table 一般可以指定分析: 表,所有字段,所有索引字段,所有索引. 若不指定则全部都分析. SQL> analyze table my_table compute statistics; SQL> analyze table my_table compute statistics for table for all indexes for al

[ SHELL编程 ] 编程常用的ORACLE相关命令

本文主要描述shell编程中常用的Oracle相关命令. 1.sqlplus -L/-S参数 sqlplus -L user/password #-L参数表示用户只尝试登录一次, 而不是在出错时再次提示,可判断用户/密码是否正确 sqlplus -S user/password #-S表示设置无提示模式,常用 2.set相关命令 set timing on #显示SQL语句的运行时间.默认值为OFF.可用于性能分析SQL执行效率. set autotrace on #允许对执行的SQL进行分析

使用analyze命令统计信息

① 搜集和删除索引.表和簇的统计信息② 验证表.索引和簇的结构③ 鉴定表和簇和行迁移和行链接针对analyze的搜集和删除统计信息功能而言Oracle推荐使用DBMS_STATS包来代替analyze搜集优化信息DBMS_STATS可以并行的搜集信息,可以搜集分区表的全局信息进一步来说,CBO只会使用DBMS_STATS包所统计出来的信息    https://blog.csdn.net/iteye_14608/article/details/82447870 1.以计算模式收集表.表的所有列及

oracle常用命令【转载】

oracle常用命令 一.Oracle数据库实例.用户.目录及session会话查看: 1.ORACLE SID查看设置 查看SID.用户名 $ env|grep SID .select * from v$instance.select instance_name,host_name from v$instance; 查看数据库所有用户及用户状态:SQL> select usernames,account_status from dba_users; 设置SID $ export ORACLE_

ORACLE EXP命令

本文对Oracle数据的导入导出 imp ,exp 两个命令进行了介绍, 并对其对应的參数进行了说明,然后通过一些演示样例进行演练,加深理解.文章最后对运用这两个命令可能出现的问题(如权限不够,不同oracle版本号)进行了探讨,并提出了对应的解决方式;本文部分内容摘录自网络,感谢网友的经验总结; 一.说明 oracle 的exp/imp命令用于实现对数据库的导出/导入操作;   exp命令用于把数据从远程数据库server导出至本地,生成dmp文件;   imp命令用于把本地的数据库dmp文件

Oracle常用命令大全

Oracle常用命令大全(很有用,做笔记) Posted on 2010-06-10 11:08 chinaifne 阅读(2) 评论(0)  编辑 收藏 一.ORACLE的启动和关闭 1.在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit b.关闭ORACLE系统 ora

Oracle统计、分析和优化环境配置

Oracle统计.分析和优化环境配置 创建批处理文件Login.bat 用于初始化设置系统环境 Login.bat @echo off title eoda mode con cols=140 color 85 set ORACLE_SID=muphy sqlplus eoda/foo 创建数据库脚本文件login.sql 用于初始化SQL*PLUS运行环境 define _editor=vim  --设置编辑器为vim set serveroutput on size 1000000 --设置