如何使用Oracle脚本获得统计信息

以下脚本可以获取某张表的统计信息,觉得很好,在此记下。

声明:脚本来自《Pro Oracle SQL》一书,st-all.sql

简单演示:

luocs@MAA> select * from tab;

TNAME                                                        TABTYPE         CLUSTERID

------------------------------------------------------------ -------------- ----------

T1                                                           TABLE

sys@MAA> @st-all

Enter the owner name: luocs

Enter the table name: t1

old   2:        v_owner varchar2(30) := upper('&p_owner');

new   2:        v_owner varchar2(30) := upper('luocs');

old   3:        v_table varchar2(30) := upper('&p_table');

new   3:        v_table varchar2(30) := upper('t1');

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

TABLE STATISTICS

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

Owner         : luocs

Table name    : t1

Tablespace    : users

Cluster name  :

Partitioned   : no

Last analyzed : 11/06/2012 22:00:11

Sample size   : 22671

Degree        : 1

IOT Type      :

IOT name      :

# Rows        : 22671

# Blocks      : 320

Empty Blocks  : 0

Avg Space     : 0

Avg Row Length: 92

Monitoring?   : yes

old   2:        v_owner varchar2(30) := upper('&p_owner');

new   2:        v_owner varchar2(30) := upper('luocs');

old   3:        v_table varchar2(30) := upper('&p_table');

new   3:        v_table varchar2(30) := upper('t1');

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

COLUMN STATISTICS

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

Name            Analyzed             Null?  NDV       Density  # Nulls   # Buckets   Sample   AvgLen  Lo-Hi Values

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

created          11/06/2012 22:00:10  Y      764       .001309  0         1           22671    8          08/22/2012 18:44:29 | 11/06/2012 11:33:50

data_object_id   11/06/2012 22:00:10  Y      7675      .000130  14959     1           7712     3          0 | 23033

edition_name     11/06/2012 22:00:10  Y      0         .000000  22671     0             0           |

generated        11/06/2012 22:00:10  Y      2         .500000  0         1           22671    2          N | Y

last_ddl_time    11/06/2012 22:00:10  Y      813       .001230  0         1           22671    8          08/22/2012 18:44:29 | 11/06/2012 11:33:50

namespace        11/06/2012 22:00:10  Y      17        .058824  0         1           22671    3          1 | 64

object_id        11/06/2012 22:00:10  Y      22671     .000044  0         1           22671    5          2 | 23033

object_name      11/06/2012 22:00:10  Y      18242     .000055  0         1           22671    21         ABSPATH | xdb-log13_TAB$xd

object_type      11/06/2012 22:00:10  Y      40        .025000  0         1           22671    7          CLUSTER | XML SCHEMA

owner            11/06/2012 22:00:10  Y      14        .071429  0         1           22671    7          APEX_030200 | XDB

secondary        11/06/2012 22:00:10  Y      2         .500000  0         1           22671    2          N | Y

status           11/06/2012 22:00:10  Y      1        1.000000  0         1           22671    6          VALID | VALID

subobject_name   11/06/2012 22:00:10  Y      83        .012048  22441     1           230      2          P0 | WRH$_WAITST_670567865_0

temporary        11/06/2012 22:00:10  Y      2         .500000  0         1           22671    2          N | Y

timestamp        11/06/2012 22:00:10  Y      831       .001203  0         1           22671    20         1997-04-12:12:59:00 | 2012-11-06:11:33:50

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

INDEX INFORMATION

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

Index Name                                                    BLevel       Leaf Blks          # Rows   Distinct Keys Avg Lf/Blks/Key Avg Dt/Blks/Key Clustering Factor     Sample Size Uniq? Type     Status   Deg Part? Vis? Last Analyzed

------------------------------------------------------------ ------- --------------- --------------- --------------- --------------- --------------- ----------------- --------------- ----- -------- -------- --- ----- ---- -------------------

INX_ID                                                             1              50           22671           22671              1                1               370           22671 NO    NORM     VALID    1   NO    .    11/06/2012 22:00:12

Index Name                                                         Pos# Order Column Name

------------------------------------------------------------ ---------- ----- ------------------------------

inx_id                                                                1 ASC   object_id

sys@MAA> exec dbms_stats.gather_table_stats('LUOCS','T1',cascade=>true);

sys@MAA> @st-all

Enter the owner name: luocs

Enter the table name: t1

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

TABLE STATISTICS

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

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

时间: 2025-01-27 12:03:30

如何使用Oracle脚本获得统计信息的相关文章

Oracle多列统计信息

Oracle多列统计信息    通常,当我们将SQL语句提交给Oracle数据库时,Oracle会选择一种最优方式来执行,这是通过查询优化器Query Optimizer来实现的.CBO(Cost-Based Optimizer)是Oracle默认使用的查询优化器模式.在CBO中,SQL执行计划的生成,是以一种寻找成本(Cost)最优为目标导向的执行计划探索过程.所谓成本(Cost)就是将CPU和IO消耗整合起来的量化指标,每一个执行计划的成本就是经过优化器内部公式估算出的数字值.      

如何启用oracle 11g自动收集统计信息

今天接到朋友数据库一个case,在DBCA建库时,把自动收集统计信息的选项去掉了,数据库运行半年没有收集过统计信息,现在要启用方法如下: exec DBMS_AUTO_TASK_ADMIN.ENABLE(); exec DBMS_AUTO_TASK_ADMIN.ENABLE(client_name => 'auto optimizer stats collection',operation =>'auto optimizer stats job',window_name=> null);

Oracle 11g的统计信息功能增强

在11g中,Oracle在统计信息方面进行了进一步的增强. 这篇介绍PENDING统计信息. 在10g中,Oracle提供了恢复统计信息的方法,这使得统计信息收集后造成的问题可以通过恢复原始统计信息的方法快速解决. 在11g中,Oracle更进了一步,用户收集的统计可以设置为悬而未决的,等到统计信息验证过然后在发布到数据字典中. SQL> SELECT * FROM V$VERSION; BANNER -----------------------------------------------

Oracle 还原历史统计信息

      统计信息是个非常有用的东东,没有它,SQL优化器就好比巧妇难为无米之炊!良好高效的SQL执行计划依赖于真实的统计信息.然而在有些情况下,比如对比生产环境与测试环境执行计划,需要使用生产环境的统计信息.而有时候呢则需要还原Oracle历史统计信息.本文基于后者即如何还原历史统计信息来展开,同时描述了11g缺省情况下对于统计信息的调度.       有关统计信息的导入导出可以参考:            dbms_stats 导入导出 schema 级别统计信息            d

Oracle 10g恢复统计信息的限制

恢复统计信息操作也存在一些限制,比如无法恢复用户自定义的统计信息.除此之外由于统计信息是表的属性,因此如果表被删除,则对应的统计备份也被清除,而TRUNCATE操作则并不会影响统计备份信息: SQL> CREATE TABLE T (ID NUMBER); Table created. SQL> INSERT INTO T SELECT ROWNUM FROM TAB; 96 rows created. SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS(US

Oracle 10g恢复统计信息的相关函数和过程

上一篇简单介绍了恢复统计信息的方法,这一篇介绍相关的视图和函数. 在上一篇提到了如果要恢复统计信息,必须提供恢复的TIMESTAMP,而这个时间戳通过USER_TABLES视图是无法获得准确信息的,因此对于表而言,可以查询USER_TAB_STATS_HISTORY视图,而对于SCHEMA和数据库级的恢复时间戳可以查询DBA_OPTSTAT_OPERATIONS视图: SQL> SELECT OPERATION, 2  TO_CHAR(START_TIME, 'YYYY-MM-DD HH24:M

oracle 11g 收集统计信息的新特点介绍

对组合列创建统计信息 --检查表结构 select * from scott.emp where 1=2; --创建虚拟列 会输出虚拟列名 select dbms_stats.create_extended_stats('scott','emp','(empno,JOB)') from dual; select * from dba_tab_cols where column_name like 'SYS_STU%'; --查看列名 select * from dba_tab_cols a wh

简述oracle的统计信息自动收集机制

统计信息对于Oracle数据库来说至关重要,尤其是在使用CBO(基于成本的优化器)模式的时候,统计信息包括表的使用块数,空闲块数,平均行长度,统计信息收集时间等.在Oracle9i数据库中,两种优化器模式RBO(基于规则的优化器)和CBO(基于成本的优化器)并存,默认情况下,optimizer_mode参数的值是choose,choose不是优化器模式,它表示,在分析数据库当中的语句时,如果在对象上有统计信息,就是用cbo的方法生成执行计划,如果对象上没有统计信息,就使用rbo的方法. 总体来看

PostgreSQL 统计信息pg_statistic格式及导入导出dump_stat - 兼容Oracle

标签 PostgreSQL , dump_stat , 统计信息 , 导出导入 背景 <PostgreSQL 规格评估 - 微观.宏观.精准 多视角估算数据库性能(选型.做预算不求人)> EXPLAIN是PG数据库用于输出SQL执行计划的语法, 1.生成的执行计划中包含COST一项. 如果校准了成本因子,COST可以和SQL实际执行时间对其.因子校对的方法如下,实际上每一种硬件,我们只需要校对一遍即可. <优化器成本因子校对(disk,ssd,memory IO开销精算) - Postg