`
yufeng0471
  • 浏览: 101085 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

DBMS_STATS包使用

 
阅读更多

有时候,想查看一下表中数据的增删改次数,可以使用视图USER_TAB_MODIFICATIONS,USER_TAB_MODIFICATIONS describes modifications to all tables owned by the current user that have been modified since the last time statistics were gathered on the tables。

 

Note:

This view is populated only for tables with the MONITORING attribute. It is intended for statistics collection over a long period of time. For performance reasons, the Oracle Database does not populate this view immediately when the actual modifications occur. Run the FLUSH_DATABASE_MONITORING_INFO procedure in the DBMS_STATS PL/SQL package to populate this view with the latest information. The ANALYZE_ANY system privilege is required to run this procedure.

sql>begin
            DbMS_STATS.flush_database_monitoring_info();
       end;

sql>select * from USER_TAB_MODIFICATIONS;
 

 

 

 

 

在使用DBMS_STATS分析表的时候,我们经常要保存之前的统计信息,以防分析后导致系统性能低下然后进行快速恢复。
首先创建一个备份表,该表是用来保存之前的统计信息

 

BEGIN
  --创建统计信息备份表
  DBMS_STATS.CREATE_STAT_TABLE(OWNNAME => USER,
                               STATTAB => 'stat_carmot_develop');
  --导出统计信息到备份表
  DBMS_STATS.EXPORT_SCHEMA_STATS(OWNNAME => USER,
                                 STATTAB => 'stat_carmot_develop',
                                 STATOWN => USER);
  --删除统计信息
  DBMS_STATS.DELETE_SCHEMA_STATS(USER);
  --导入统计信息
  DBMS_STATS.IMPORT_SCHEMA_STATS(USER, 'stat_carmot_develop');
  --收集统计信息
  DBMS_STATS.GATHER_SCHEMA_STATS(USER);
  --恢复统计信息
  DBMS_STATS.RESTORE_SCHEMA_STATS(OWNNAME         => USER,
                                  AS_OF_TIMESTAMP => SYSTIMESTAMP - 0.5,
                                  FORCE           => TRUE);
END;
分享到:
评论

相关推荐

    使用dbms_stats包手工收集统计信息

    Oracle 数据库中使用 dbms_stats 包手动收集统计信息 在 Oracle 数据库中,dbms_stats 包提供了一种手动收集统计信息的方式,包括基于表、用户和索引的统计信息。通过使用 dbms_stats 包,我们可以手动收集统计信息...

    Metalink_DBMS_STATS.doc

    传统上,有两种方法来收集这些统计信息:ANALYZE(或通过DBMS_UTILITY包)和DBMS_STATS包。然而,随着Oracle版本的发展,DBMS_STATS逐渐成为更推荐的选择,因为它提供了更准确的统计信息和并行收集统计的能力。 **...

    ORACLE DBMS STATS ERROR

    然而,当出现错误“ORA-04063: package body 'SYS.DBMS_REGISTRY_SYS' has errors”时,表明`DBMS_STATS`包或与其相关的`SYS.DBMS_REGISTRY_SYS`包体存在错误,这可能对数据库性能和正常操作造成影响。 **问题症状*...

    dbms_stats.docx

    DBMS_STATS是Oracle提供的一款功能强大的工具包,主要用于收集表和索引的统计信息,进而帮助Oracle的Cost-Based Optimizer (CBO)生成更为高效的执行计划。通过准确的统计信息,可以有效地减少查询响应时间和提高系统...

    Re-post: DBMS_XPLAN : Display Oracle Execution Plans

    描述虽然为空,但根据标题我们可以推测,这篇博文可能是关于如何使用DBMS_XPLAN包来解析和理解Oracle的执行计划,这对于数据库管理员和开发人员优化SQL性能至关重要。 标签“源码”和“工具”暗示了这篇博文可能...

    Oracle 11g收集各种统计信息(DBMS_STAT)

    Oracle 11g中的DBMS_STATS包是用于收集数据库对象统计信息的重要工具,这些统计信息对于Oracle的优化器来说至关重要,因为它们影响到查询执行计划的选择。在Oracle 7版本中,analyze语句被用来收集统计信息,但在...

    Oracle PL/SQL常用47个工具包

    18. **DBMS_STATS.GATHER_SCHEMA_STATS**: 收集整个模式的统计信息,优化性能。 19. **DBMS_PROFILER**: 性能分析工具,追踪PL/SQL代码的执行时间。 20. **DBMS_METADATA_DIFF**: 比较并显示两个数据库对象之间的...

    Oracle内置包_reference

    DBMS_STATS包用于收集和管理表、索引的统计信息,这些信息被Oracle的查询优化器用来选择最佳的执行计划。 以上只是Oracle内置包的一部分,实际上,Oracle还提供了许多其他的包,如DBMS_OUTPUT、DBMS_METADATA等,...

    DM7_System_Packages.pdf

    21. DBMS_STATS系统包的使用 ### 联系方式 文档末尾提供了达梦数据库的技术支持联系方式,包括官方网站、技术服务电话和邮箱,以便用户在遇到问题时能够快速获得帮助。 ### 结论 这份系统包使用手册详尽地介绍了...

    oracle-认证之管理统计信息

    通过使用合适的工具如`ANALYZE`命令和`DBMS_STATS`包,结合合理的收集策略,可以确保优化器始终拥有最新且准确的统计信息,从而制定出最佳的执行计划。此外,合理安排统计信息的收集时间以及关注那些更新频繁的对象...

    Oracle内置包的使用方法.rar

    `DBMS_STATS.GATHER_TABLE_STATS`用于收集表的统计信息,`DBMS_STATS.PUSH_SCHEMA_STATS`将统计信息推送到数据字典。 13. **DBMS_APPLICATION_INFO**: 在PL/SQL程序中设置和查询应用信息,如客户端信息和工作负载...

    Oracle更新分析

    本文将深入探讨Oracle更新分析的关键概念和技术细节,包括如何利用`dbms_stats`包进行统计信息收集、不同选项的意义以及它们对SQL执行效率的影响。 #### 一、Oracle统计信息的重要性 Oracle数据库中的统计信息对于...

    ORACLE 数据库的统计数据及优化

    本文将重点探讨Oracle数据库中的统计数据及其优化策略,特别是通过使用`dbms_stats`包来提升SQL查询性能。 #### 二、Oracle数据库的统计数据 统计数据是指Oracle数据库中关于表、索引等对象的数据分布信息。这些...

    Oracle运维最佳实践-下.pdf 带书签

    - 使用`DBMS_WORKLOAD_REPOSITORY`包来查询AWR数据,如`DBMS_WORKLOAD_REPOSITORY.REPORT_SQL_MONITOR`函数可以生成特定SQL语句的性能报告。 - **2.1.2 SPA(SQL Performance Analyzer)** - SPA是一个强大的工具...

    Oralce11g数据库常见内置程序包

    3. **Automatic Diagnostic Repository (ADR)**:自Oracle 11g开始,使用`DBMS_SQLDIAG`等程序包进行诊断信息的管理和分析。 4. **Automatic Workload Repository (AWR)**:帮助监控数据库性能,通过`DBMS_WORKLOAD_...

    性能调优分析之:Oracle SQL执行计划报告生成器

    因为XYG_ALD_SESS_PKG包体会用到。(View Create Script v1.0.sql) 如果出现没权限访问GV$SQL_PLAN_MONITOR这些对象,请先用sys用户赋值。 3 最后,编译XYG_ALD_SESS_PKG的包体。完工! (XYG_ALD_SESS_PKG_BODY...

    oracle系统内置包

    Oracle提供了一系列监控分析功能的程序包,例如DBMS_STATS包,它包含了许多用于收集、删除和获取表、索引、模式和数据库统计信息的过程和函数。以gather开头的过程用于收集统计信息,以delete开头的用于删除统计信息...

    oracle 函数 oracle函数 存储过程

    exec dbms_job.what(2, 'dbms_stats.gather_table_stats(''scott'',''emp'');'); exec dbms_job.next_date('2', 'sysdate+1'); ``` 通过`DBMS_OUTPUT`和`DBMS_JOB`,开发者可以在Oracle环境中实现高级的调试和自动...

    session级别的statspack

    使用`EXEC DBMS_STATS.CREATE_STATS PACK`命令创建Statspack包。 2. **收集会话快照**:当会话运行时,我们可以定期或者在关键操作后使用`DBMS_STATS.GATHER_SESSION_STATS`过程收集快照。这个过程需要传入会话的...

Global site tag (gtag.js) - Google Analytics