首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

针对Oracle的表统计信息收集

针对Oracle的表统计信息收集,我们可以使用以下方法:

  1. 使用DBMS_STATS包:

DBMS_STATS是Oracle提供的一个包,用于收集和分析统计信息。可以使用以下命令收集表统计信息:

代码语言:txt
复制
BEGIN
  DBMS_STATS.GATHER_TABLE_STATS('<schema_name>',<table_name>');
END;

其中,<schema_name>是表所属的模式名称,<table_name>是表名称。

  1. 使用USER_TABLES视图:

USER_TABLES视图提供了有关当前用户拥有的表的信息,包括表的行数、列数、平均行长等。可以使用以下查询语句查询表统计信息:

代码语言:txt
复制
SELECT table_name, num_rows, blocks FROM user_tables;

其中,table_name是表名称,num_rows是表中的行数,blocks是表占用的数据块数。

  1. 使用DBA_TABLES视图:

DBA_TABLES视图提供了有关所有表的信息,包括表的行数、列数、平均行长等。需要具有DBA权限才能查询该视图。可以使用以下查询语句查询表统计信息:

代码语言:txt
复制
SELECT owner, table_name, num_rows, blocks FROM dba_tables;

其中,owner是表所属的用户名称,table_name是表名称,num_rows是表中的行数,blocks是表占用的数据块数。

总之,针对Oracle的表统计信息收集,可以使用DBMS_STATS包或者系统视图来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【DB笔试面试630】在Oracle中,怎样收集表的统计信息?怎样收集分区表的统计信息?

♣ 题目部分 在Oracle中,怎样收集表的统计信息?怎样收集分区表的统计信息?...♣ 答案部分 主要采用DBMS_STATS.GATHER_TABLE_STATS包进行统计信息的收集,如下所示: DBMS_STATS.GATHER_TABLE_STATS(USER,'TB_NAME...=>'PARTITION',CASCADE=>TRUE);--针对分区表的单个分区进行收集统计信息 除此之外,还有一些其它的用法,如下所示: l EXEC DBMS_STATS.GATHER_DATABASE_STATS...();--收集当前数据库下所有用户的统计信息 l EXEC DBMS_STATS.GATHER_SCHEMA_STATS(USER);--收集用户下所有对象的统计信息 当系统的分区表数据量很大时,如果每次都收集全部的分区必然会导致统计信息的收集非常慢...,在Oracle 11g之后可以通过设置INCREMENTAL来只针对数据有变动的分区做收集: EXEC DBMS_STATS.SET_TABLE_PREFS(USER,'TABLE_NAME','INCREMENTAL

99130

Oracle并发(CONCURREMT)收集统计信息

编辑手记:从11.2开始,可以通过CONCURRENT参数,启用表或分区的并行扫描,加快统计信息的收集速度。 作者简介:何剑敏 Oracle ACS华南区售后团队,首席技术工程师。...多年从事第一线的数据库运维工作,有丰富项目经验、维护经验和调优经验,专注于数据库的整体运维。 对于大表的统计信息收集,我们可以加degree参数,使得扫描大表的时候,进行并行扫描,加快扫描速度。...但是这在收集的时候,还是进行一个表一个表的扫描。并没有并发的扫描各个表。在oracle 11.2.0.2之后,就有了一个参数,可以并发扫描表(或者分区),这就是CONCURRENT参数。...可以通过以下语句看到你的数据库是否启用了CONCURRENT收集统计信息。...EBS的安装文档中(Doc ID 396009.1),也是说将数据上收集统计信息的功能关闭的(_optimizer_autostats_job=false) 参考: https://blogs.oracle.com

1.8K50
  • Oracle的自动统计信息不收集直方图的信息

    在oracle9i中,默认的统计信息收集是不收集直方图信息的,也就是说默认的MOTHOD_OPT模式为FOR ALL COLUMNS SIZE 1 在10g开始,dbms_stats包中默认的METHOD_OPT...DBMS_STATS.GET_PARAM('METHOD_OPT') ——————————————————————– FOR ALL COLUMNS SIZE AUTO 这就说明,从10g开始,统计信息收集中的直方图部分...,收集与否是有oracle自从判断,从实际的使用来看,oracle的智能判断并不是100%正确, oracle往往会大量的收集一些并不是必须的直方图信息,而有些直方图信息又会对查询造成不必要的影响 由于我们简单的对直方图进行删除后...,oracle的自动统计信息又会重新收集,所以我们需要采取一些必要的方法,来规避这个问题 10g中: 解决方案 删除表的统计信息 手工收集标的统计信息,不收集直方图 lock表的统计信息 创建JOB手工收集统计信息...11g中 在11g中,oracle对dbms_stats包添加了新功能,提供给我们进行修改,可以使用dbms_stats.set_table_prefs包 删除直方图信息: dbms_stats.delete_column_stats

    69950

    关于Oracle开启自动收集统计信息的SPA测试

    主题:关于Oracle开启自动收集统计信息的SPA测试 环境:Oracle RAC 11.2.0.4(Primary + Standby) 需求:生产Primary库由于历史原因关闭了自动统计信息的收集...,目前客户需求是想要重新开启统计信息的自动收集,虽然一般来说,有了更准确的统计信息,SQL会有更好的执行计划,但由于生产环境数据复杂,实际上还是需要评估哪些SQL会因为重新开启自动统计信息收集性能反而会下降...: --光闭自动统计信息收集,(慎用,除非有其他手工收集统计信息的完整方案,否则不建议关闭) BEGIN DBMS_AUTO_TASK_ADMIN.disable( client_name...这里首先需要开启统计信息自动收集,并可以把自动收集的窗口时间提前到现在,减少等待的时间。...: Oracle的窗口和自动任务 5.4 变更后再次分析性能 测试运行SQL Tuning Set中的SQL语句,分析所有语句在收集统计信息之后的执行效率: 参考规范: EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK

    1.1K20

    Oracle 11G统计信息自动收集及调整

    从Oracle 11G开始,数据库统计信息的自动收集被整合到自动维护任务中,满足大多数情形下的运行需求。但对于在线商城,交易系统而言,可能需要调整其执行时间或者自行指定收集窗口。...一、缺省的统计信息相关状态查看 1、查看自动收集统计信息对应的task(也就是program的名称)及状态 --当前状态 SQL> select * from v$version...Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production --如下查询表明统计信息的收集是位于gather_stats_prog...--统计信息收集的时间窗口 --如下查询周一至周五时间为22点,周六日为6点 --此外持续也不相同,周一至周五为4小时,周六日为20个小时...--如下查询,scott表上的统计信息已更新 SQL> select TABLE_NAME,NUM_ROWS,BLOCKS,LAST_ANALYZED from dba_tables where

    1.2K00

    【DB笔试面试645】在Oracle中,当收集表的统计信息时应该注意哪些问题?

    ♣ 题目部分 在Oracle中,当收集表的统计信息时应该注意哪些问题?...⑥ 统计信息收集作业采样比例:对于Oracle 11g及其以上的版本收集统计信息的采样比例建议采用DBMS_STATS.AUTO_SAMPLE SIZE。...⑧ 内部对象统计信息:在明确诊断出系统已有的性能问题是因为X$表的内部对象统计信息不准引起的,这个时候就应该收集X$表的内部对象统计信息,其它情形就不要收集了。...⑳ 检查是否有临近统计信息收集窗口的数据加载工作,如果有,是否能在数据库统计信息的窗口时间完成,如果不能在窗口时间完成,那么应该针对这段时间加载的数据,特别是大量的数据,在相关加载脚本完成之后,加入统计信息的收集...21 如果加载数据量比较大,并且是分区表,每个分区的业务数据呈现的是均匀的,在Oracle 11g可以考虑采用DBMS_STATS.COPY_TABLE_STATS先把统计信息做个快速的设置,然后,再收集该分区的统计信息

    1.2K30

    Oracle 12c数据库优化器统计信息收集的最佳实践(三)|何时不需要收集统计信息

    如果你依赖于自动收集统计信息job来维护这类表的统计信息,那么统计信息会经常显示此表为空。因为晚上此表是空的,而收集统计信息的job也正是晚上才开始执行。...另外,你可以依赖于动态采样来收集这些表的统计信息。优化器在优化一个语句之前编译sql语句的时候会使用动态采样来收集表的基本统计信息。...全局临时表在系统级别与具有适当权限的所有用户共享其定义,但里面的数据内容在会话之间是相互独立和私有的。针对此表,直到有数据插入时才会分配物理存储。...然而,在oracle 12c版本,现在可以实现每个使用全局临时表的会话拥有自己独立的统计信息。...总 结 为了使oracle优化器准确地确定执行计划的成本,那么sql语句中涉及到的全部对象(表和索引)必须有准确的统计信息,且必须有准确的系统统计信息。

    1.2K50

    Oracle 10g收集数据库统计信息

    Oracle优化器(CBO)依赖数据库统计信息来计算目标SQL各种可能的执行路径的成本,并从中选择一条成本值最小的执行路径来作为目标SQL的执行计划。...如果统计信息不准确甚至是错误,会导致优化器选择错误SQL执行计划的概率大大增加。 目前计划对该数据库统计信息进行重新收集,因为生产环境的复杂性,不排除重新收集正确的统计信息后,整体性能反而下降的情况。...故而在收集之前需要对原有的统计信息做好备份,如发现收集后性能反而下降的极端情况,也可以快速回退到原有的统计信息。...收集数据库的统计信息,需要在业务闲时操作: --开启计时 set timing on --开始收集全库统计信息 begin dbms_stats.gather_database_stats( ESTIMATE_PERCENT...如果数据库是11.2.0.2及以上版本,还可以通过DBMS_STATS.SET_GLOBAL_PREFS设置并发收集进一步提升收集效率,具体可参考: Oracle 11g快速收集全库统计信息 3.回退方案

    49110

    Oracle统计信息的那点事儿

    引言 在Oracle的11g版本中,统计信息为自动收集功能,在部署安装11g Oracle软件过程中,其中有一个步骤便是提示是否启动这个功能(默认是启用这个功能);且有时候在生产环境中,还会对一些对象做手动统计信息的搜集...如果对一次执行SQL时发现涉及对象(表、索引等)没有被分析、统计过,那么ORACLE会采用一种叫做动态采样的技术,动态的收集表和索引上的一些数据信息。...Oracle的统计信息自动搜集策略 接下来讲一讲统计信息收集那点事。统计信息可分为自动收集和手动收集。...对于分区表,如果仅仅是一个分区有了较大改动,只需要收集一个分区的统计,但是收集整个表的分区也是必要的; 4. 其他。 3....这个功能貌似带来了统计数据采集上的便捷,但是Oracle 11g自动收集统计信息的时间是22:00--2:00。 这个时间段往往是业务的高峰期,给本已紧张的系统带来更大的负担。

    1.8K20

    ORACLE修改表信息

    DML锁的目的在于保证并发情况下的数据完整性,。在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁,TX锁称为事务锁或行级锁。...当Oracle 执行DML语句时,系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后,系统再自动申请TX类型的锁,并将实际锁定的数据行的锁标志位进行置位。...DML锁分类表 表1 Oracle的TM锁类型 锁模式 锁描述 解释 SQL操作 0 none 1 NULL 空 Select 2 SS(Row-S) 行级共享锁,其他对象只能查询这些数据行 Select...sid,serial#:表示会话信息。 program:表示会话的应用程序信息。 row_wait_obj#:表示等待的对象,和dba_objects中的object_id相对应。...lockwait :该会话等待的锁的地址,与v$lock的kaddr对应. v$session_wait 查询等待的会话信息。 sid:表示持有锁的会话信息。

    2.1K30

    【DB笔试面试644】在Oracle中,如何并发地收集统计信息?

    ♣ 题目部分 在Oracle中,如何并发地收集统计信息? ♣ 答案部分 对于大表的统计信息收集可以通过DEGREE参数使得扫描大表的时候进行并行扫描,从而加快扫描速度,缩短了收集统计信息的时间。...但是,即使加了DEGREE参数,在收集统计信息的时候,还是进行一个表一个表的扫描,并没有并发的同时扫描多个表。...在并发收集统计信息时,数据库生成的JOB数会根据具体情况来分配。...,对并发统计信息收集进行监视: DBA_OPTSTAT_OPERATION_TASKS:当前和历史的统计信息收集的执行任务 DBA_OPTSTAT_OPERATIONS:当前和历史的统计信息收集的执行操作...& 说明: 有关并发地收集统计信息的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2134312/ 本文选自《Oracle程序员面试笔试宝典

    58020

    Oracle 还原历史统计信息

    然而在有些情况下,比如对比生产环境与测试环境执行计划,需要使用生产环境的统计信息。而有时候呢则需要还原Oracle历史统计信息。...有关统计信息的导入导出可以参考: dbms_stats 导入导出 schema 级别统计信息 dbms_stats 导入导出表统计信息 1、演示环境 sys@MMBO> select * from...DEPARTMENTS 20130815 18:03:56 JOBS 20130815 18:03:56 --创建用于存放导出统计信息的表...--查看还原之后scheme HR上对象的LAST_ANALYZED时间,这个与收集统计信息之前是一致的 --尽管我们指定了sysdate-1,但实际上昨天的历史统计信息的最后analyzed 也是20130815...(11g) 缺省情况下,Oracle为我们定义了收集统计信息的scheduler,下面列出来在Oracle 11g配置的关于自动收集统计信息的scheduler。

    1K10

    Oracle统计信息中的Pending Statistics

    前言 Oracle中的统计信息相信大家都不陌生,统计信息中有Pending Statistics这个概念。...统计信息准确性对于CBO评估SQL的各种可能执行路径的Cost非常重要,当统计信息不准时,很可能CBO选择了不佳的执行计划,此时需要收集统计信息。...或者当进行SQL优化时,怀疑是统计信息不准导致的问题时,需要收集统计信息。...但生产环境下统计信息的收集也是有风险的,有可能当收集了统计信息后执行计划反而变的更差,此时就可以利用Pending Statistics。 默认的,当收集完统计信息后,统计信息会存储到数据字典表中。...要点总结 1.使用set_table_prefs过程将表的publish选项设置为false,收集统计信息时表和索引的统计信息都会被收集为pending statistics,可以查看视图dba_tab_pending_stats

    85930

    收集统计信息导致索引被监控

    对于索引的调整,我们可以通过Oracle提供的索引监控特性来跟踪索引是否被使用。尽管该特性并未提供索引使用的频度,但仍不失为我们参考的方式之一。...然而,最近在Oracle 10.2.0.3中发现收集统计信息时导致索引也被监控,而不是用于sql查询引发的索引监控。如此这般,索引监控岂不是鸡肋?...1、基于Oracle 10g 收集统计信息索引被监控情形 scott@CNMMBO> select * from v$version where rownum<2; BANNER ---------...11g收集统计信息索引被监控情形 SQL> select * from v$version where rownum<2; BANNER ------------------------------...10g中当收集统计信息时,如果当前索引的统计信息也被收集则导致该索引被监控   b、注意索引能否被收集到还依赖于estimate_percent以及method_opt等收集时的相关参数   c、由于上述情形存在因此索引监控在

    37620
    领券