首页
学习
活动
专区
工具
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

95130

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.6K50

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

58350

关于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.1K30

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.回退方案

45510

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

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

1.1K50

Oracle统计信息那点事儿

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

1.6K20

ORACLE修改信息

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

53920

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。

93810

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

79930

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

对于索引调整,我们可以通过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、由于上述情形存在因此索引监控在

35120
领券