analyze table t1 compute statistics for table;
analyze table t2 compute statistics for all columns;
analyze table t3 compute statistics for all indexed columns;
analyze table t4 compute statistics;
得出结论,只有我们在analyze table命令中指定了for table或者不指定任何参数的时候,oracle数据库才会给我们统计基于表的统计信息
analyze TABLE a COMPUTE statistics FOR TABLE;对表做统计分析,仅仅影响all_tables中的相关数据
analyze TABLE b COMPUTE statistics FOR ALL indexed columns;对索引列做统计分析,仅仅影响all_tab_columns中索引列相关数据
analyze TABLE c COMPUTE statistics FOR TABLE FOR ALL indexed columns;对表和索引列做统计分析,影响all_tables中对应表名的相关数据及all_tab_columns中对应 索引列的相关数据
analyze TABLE d COMPUTE statistics;分析表的所有列和表的整体信息,影响all_tables中对应表名的相关数据及all_tab_columns中属于表d的 所有列的相关数据
来源:http://space.itpub.net/1698901/viewspace-103273
analyze table t compute statistics = analyze table t compute statistics for table for all indexes for all columns
for table的统计信息存在于视图:user_tables 、all_tables、dba_tables
for all indexes的统计信息存在于视图: user_indexes 、all_indexes、dba_indexes
for all columns的统计信息存在于试图:user_tab_columns、all_tab_columns、dba_tab_columns
当analyze table t delete statistics 会删除所有的statistics
Oracle collects the following statistics for a table. Statistics marked with an asterisk are always computed exactly. Table statistics, including the status of domain indexes, appear in the data dictionary views USER_TABLES, ALL_TABLES, and DBA_TABLES in the columns shown in parentheses.
Number of rows (NUM_ROWS)
* Number of data blocks below the high water mark (that is, the number of data blocks that have been formatted to receive data, regardless whether they currently contain data or are empty) (BLOCKS)
* Number of data blocks allocated to the table that have never been used (EMPTY_BLOCKS)
Average available free space in each data block in bytes (AVG_SPACE)
Number of chained rows (CHAIN_COUNT)
Average row length, including the row's overhead, in bytes (AVG_ROW_LEN)
Oracle collects the following statistics for an index. Statistics marked with an asterisk are always computed exactly. For conventional indexes, the statistics appear in the data dictionary views USER_INDEXES, ALL_INDEXES, and DBA_INDEXES in the columns in parentheses.
*Depth of the index from its root block to its leaf blocks (BLEVEL)
Number of leaf blocks (LEAF_BLOCKS)
Number of distinct index values (DISTINCT_KEYS)
Average number of leaf blocks for each index value (AVG_LEAF_BLOCKS_PER_KEY)
Average number of data blocks for each index value (for an index on a table) (AVG_DATA_BLOCKS_PER_KEY)
Clustering factor (how well ordered the rows are about the indexed values) (CLUSTERING_FACTOR)
Restrictions on Analyzing Tables
You cannot use ANALYZE to collect statistics on data dictionary tables.
You cannot use ANALYZE to collect statistics on an external table. However, you can use the DBMS_STATS package for this purpose.
You cannot use ANALYZE to collect default statistics on a temporary table. However, if you have created an association between one or more columns of a temporary table and a user-defined statistics type, then you can use ANALYZE to collect the user-defined statistics on the temporary table. (The association must already exist.)
You cannot compute or estimate statistics for the following column types: REFs, varrays, nested tables, LOBs (LOBs are not analyzed, they are skipped), LONGs, or object types. However, if a statistics type is associated with such a column, then user-defined statistics are collected.
分享到:
相关推荐
首先,我们要理解“analyze”命令在Oracle中的作用。这是Oracle SQL的一个内置功能,用于收集关于表、索引和其他数据库对象的统计信息。这些统计信息包括行数、块数、空闲空间、最大值和最小值等,它们为Oracle的...
在Oracle中,可以通过`ANALYZE TABLE`命令来实现这一功能。下面的SQL脚本`analyTab.sql`展示了如何生成针对用户所有表的分析语句。 ```sql SELECT 'ANALYZE TABLE ZFMI.'||TABLE_NAME||' COMPUTE STATISTICS ;' ...
- `ANALYZE TABLE table_name VALIDATE STRUCTURE CASCADE;` - `ANALYZE TABLE table_name LIST CHAINED ROWS;` - **限制**:`ANALYZE`命令不适用于大型分区表。 ##### 2. DBMS_STATS 包 - **功能**:提供了更...
- `ANALYZE`:分析表或索引,优化查询计划,如`ANALYZE TABLE table_name COMPUTE STATISTICS`。 - `DBMS_STATS`:PL/SQL包,提供更多高级统计分析功能。 以上只是Oracle数据库常用命令的一部分,实际工作中根据...
以下是一些关于Oracle基本命令的详细说明: 1. **备份与恢复**: - 使用`exp`命令进行导出(备份),例如`exp scott/tiger file=导出文件`用于备份scott用户的数据,`owner`参数可以指定多个用户。 - `imp`命令...
- `ANALYZE`命令用于收集表统计信息,帮助优化器做出更好的执行计划。 - `DBMS_STATS`包提供了更高级的统计信息收集功能。 9. **PL/SQL编程**: - PL/SQL是Oracle的存储过程语言,用于编写数据库程序。`DECLARE`...
本文将围绕"Oracle命令大全及关于Oracle 1000问"的主题,深入讲解日志管理、表空间管理、表操作和索引管理等关键知识点。 首先,日志管理在Oracle数据库中至关重要,因为它是数据恢复的基础。主要涉及Redo Logs和...
用户可以使用"Graphs"菜单中的"Chart"命令创建统计图表、"Plot"命令创建统计图表和"Table"命令创建统计表格。 8. 实用程序(Utilities) 实用程序命令用于提供一些辅助工具。用户可以使用"Utilities"菜单中的"Data...
`ANALYZE TABLE`命令用于收集和更新表统计信息,特别是关于索引的cardinality,这直接影响到查询优化器的选择。例如,如果索引的cardinality不准确,MySQL可能无法有效地利用索引,导致查询性能下降。通过`SHOW ...
1. 使用`ANALYZE TABLE`分析表统计信息,帮助优化查询计划。 2. `OPTIMIZE TABLE`命令用于重建表,压缩碎片,提高查询效率。 3. `EXPLAIN`关键字配合查询语句,可以查看执行计划,分析查询性能。 以上只是Linux ...
- `ANALYZE TABLE table_name COMPUTE STATISTICS;`:计算表的统计信息。 以上只是Oracle常用命令的一部分,实际使用中还会涉及到索引、分区、备份恢复、性能优化等更高级的操作。通过熟练掌握这些基础命令,可以...
- `ANALYZE TABLE table_name COMPUTE STATISTICS FOR COLUMNS;`:计算表的统计信息。 8. 角色与权限 - `GRANT privilege TO username;`:给用户授予权限。 - `REVOKE privilege FROM username;`:撤销用户权限...
`ANALYZE TABLE`收集统计信息,帮助MySQL更准确地执行查询。`REPAIR TABLE`修复损坏的表。 MySQL还支持事务处理,`BEGIN`, `COMMIT`, `ROLLBACK`用于控制事务的开始、提交和回滚,确保数据一致性。 以上仅是MySQL...
- `ANALYZE TABLE table_name COMPUTE STATISTICS FOR INDEXES;`:更新索引统计信息。 5. **表空间与数据文件管理**: - `CREATE TABLESPACE tablespace_name DATAFILE 'file_path' SIZE size;`:创建表空间并...
- `ANALYZE TABLE`:收集表的统计信息,帮助优化查询。 - `COMMIT`和`ROLLBACK`:提交或回滚事务。 9. **视图和存储过程**: - `CREATE VIEW`:创建视图,简化复杂的查询操作。 - `CREATE PROCEDURE`:创建存储...
- `ANALYZE TABLE`: 分析表的统计信息。这有助于优化查询计划。 - `OPTIMIZE TABLE`: 优化表,如重组织存储,重建索引等。 12. **其他常用命令**: - `SHOW DATABASES;`: 显示所有数据库。 - `SHOW TABLES;`: ...