- 浏览: 1019747 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (529)
- 服务器 (8)
- jsp (1)
- java (6)
- AIX (1)
- solaris (3)
- linux学习 (53)
- javaScript (2)
- hibernate (1)
- 数据库 (74)
- sql语句 (8)
- oracle 学习 (75)
- oracle 案例 (42)
- oracle 管理 (42)
- Oracle RAC (27)
- oracle data guard (12)
- oracle 参数讲解 (14)
- Oracle 字符集 (8)
- oracle性能调优 (24)
- oracle备份与恢复 (12)
- oracle Tablespace (9)
- oracle性能诊断艺术 (1)
- oracle 11g学习 (5)
- oracle streams (1)
- oracle upgrade and downgrade (4)
- db2学习 (13)
- db2命令学习 (2)
- mysql (28)
- sql server (30)
- sql server 2008 (0)
- 工具 (10)
- 操作系统 (3)
- c++ (1)
- stock (1)
- 生活 (5)
- HADOOP (2)
最新评论
-
massjcy:
...
如何将ubuntu文件夹中文名改为英文 -
skypiea:
谢谢。。。
终于解决了。。。
Oracle 10.2.0.4(5)EM不能启动的解决方案(Patch 8350262) -
qwe_rt:
引用vi /etc/sysconfig/network 请问 ...
Linux操作系统下配置静态IP上网 -
liuqiang:
sudo killall -9 apache2
ps 和 kill 命令详解 -
dazuiba:
引用*绝杀 kill -9 PID 当使用此命令时,一定要通过 ...
ps 和 kill 命令详解
Oracle 10g 版本最后不再支持(而不是反对)基于规则的优化器 (RBO)。因为 CBO 依靠准确的(或者说比较准确的)统计信息来产生优化的执行路径,所以 DBA 需要确保定期收集统计信息,创建另一个执行核对清单。在 10g 之前,这一过程可能由于多种原因而徒劳无功。在 10g 中已经消除了很多这类的顾虑,它能够自动收集统计信息。在 Oracle9i 中,您可以通过打开表监视选项 (ALTER TABLE ...MONITORING) 然后检查这些表的视图 DBA_TAB_MODIFICATIONS,检查表中的数据是否已明显更改过。
在 10g 中,已不再使用 MONITORING 语句了。而通过设置初始化参数 STATISTIC_LEVEL 为 TYPICAL 或 ALL,就可以自动收集统计信息。(默认值为 TYPICAL,因此可以随即启用自动收集统计信息的功能。)Oracle 数据库 10g 具有一个预定义的调度程序作业,名称为 GATHER_STATS_JOB,它由 STATISTIC_LEVEL 参数的适当数值所激活。SQL> show parameter statistics_
NAME TYPE VALUE
------------------------------------ ----------- -----------------
statistics_level string TYPICAL
statistics_level 默认是typical,在10g中表监控是激活的,强烈建议在10g中此参数的值是typical。如果STATISTICS_LEVEL设置为basic,不仅不能监控表,而且将禁掉如下一些10g的新功能:
ASH(Active Session History)
ASSM(Automatic Shared Memory Management)
AWR(Automatic Workload Repository)
ADDM(Automatic Database Diagnostic Monitor)
统计信息的收集是资源相当密集的工作,因此您可能希望确保它不影响数据库的正常操作。在 10g 中,您可以使这一工作自动完成:可对一个名为 AUTO_TASK_CONSUMER_GROUP 的特定资源用户组进行预定义,用于自动执行一些任务,比如收集统计信息。该用户组确保这些统计信息收集作业的优先权低于默认用户组,因此减少或消除了自动化任务占用整个机器的风险。
这个自动任务默认情况下在工作日晚上10:00 - 6:00 和周末全天开启。调用 DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC 收集统计信息。该过程首先检测统计信息缺失和陈旧的对象。然后确定优先级,再开始进行统计信息。
可以通过以下查询这个JOB的运行情况:
SQL> set lines 256
SQL> col last_start_date format a40
SQL> col last_run_duration format a30
SQL> SELECT owner, enabled, auto_drop, restartable, state, run_count, failure_count, last_start_date, last_run_duration FROM dba_scheduler_jobs where job_name = 'GATHER_STATS_JOB';
OWNER ENABL AUTO_ RESTA STATE RUN_COUNT FAILURE_COUNT LAST_START_DATE LAST_RUN_DURATION
------------------------------ ----- ----- ----- --------------- ---------- ------------- ---------------------------------------- ------------------------------
SYS TRUE FALSE TRUE SCHEDULED 57 0 27-NOV-08 10.00.02.228110 PM +08:00 +000000000 00:00:25.870394
如果希望将参数 STATISTIC_LEVEL 设为 TYPICAL 却不希望自动收集统计信息时该怎么办?很简单。只需使用以下语句来禁用调度程序作业即可: SQL> exec DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
那么您为什么要这样做呢?有很多原因 — 其中一个原因是,虽然表中大部分行发生了变化,但分布情况可能没有改变,这在数据仓库中很常见。在这种情况下,您不希望再次收集统计信息,而只是希望重用原来的统计信息。另一个原因可能是您正在使用分区交换功能来刷新物化视图 (MV),并且不希望收集关于物化视图的统计信息,因为关于被交换表的统计信息也会被导入。但是,您也可以将特定的表排除在自动统计信息收集作业之外,而不需要禁止整个作业。
在优化器收集统计信息时可能出现的复杂情况之一是执行计划的改变 — 也就是说,原来的优化方法在收集统计信息之前一直工作良好,但是在此之后,由于新收集的统计信息产生了不良计划,导致查询突然出错。这种问题并不少见。
为避免这种灾难,统计信息的收集作业在收集新信息之前保存当前的统计信息。如果出现问题,您总可以返回到原有的统计信息,或者至少可以检查二者之间的不同之处,以便于解决问题。
例如,假设在 5 月 31 日晚上 10:00 开始运行表 REVENUE 上的统计信息收集作业,而随后查询的性能变差。Oracle 保存了原有的统计信息,您可以通过执行以下命令重新获取这些信息:
SQL> exec dbms_stats.restore_table_stats ( 'ARUP', 'REVENUE', '31-MAY-04 10.00.00.000000000 PM -04:00');
此命令恢复到 5 月 31 日晚上 10:00 为止的统计信息,时间信息是以 TIMESTAMP 数据类型提供。这样您就立即还原了由新的统计信息收集程序所作的更改。
您能够恢复的时间长度是由保留参数所决定的。要查看当前的保留参数,可使用以下查询:
SQL> select DBMS_STATS.GET_STATS_HISTORY_RETENTION from dual;
GET_STATS_HISTORY_RETENTION
---------------------------
31
在本示例中表示可以保存相当于 31 天的统计信息,但并不能予以保证。要了解统计信息所覆盖到的确切时间和日期,只需使用以下查询:
SQL> select DBMS_STATS.GET_STATS_HISTORY_AVAILABILITY from dual;
GET_STATS_HISTORY_AVAILABILITY
----------------------------------------------------------------
27-10月-08 11.14.20.357622000 下午 +08:00
该查询表明可用的最陈旧统计信息日期为 10 月 27 日下午 11:14。
您可以通过执行内建的函数将保留时间设为不同的值。例如,要将其设为 45 天,可使用:
SQL> exec DBMS_STATS.ALTER_STATS_HISTORY_RETENTION (45);
另外
为什么有部分表没有被分析呢, 原因跟表DBA_TAB_MODIFICATIONS有关.
Oracle® Database Performance Tuning Guide
10g Release 2 (10.2)
Part Number B14211-01
Statistics must be regularly gathered on database objects as those database objects are modified over time. In order to determine whether or not a given database object needs new database statistics, Oracle provides a table monitoring facility. This monitoring is enabled by default when STATISTICS_LEVEL
is set to TYPICAL
or ALL
. Monitoring tracks the approximate number of INSERT
s, UPDATE
s, and DELETE
s for that table, as well as whether the table has been truncated, since the last time statistics were gathered. The information about changes of tables can be viewed in the USER_TAB_MODIFICATIONS
view. Following a data-modification, there may be a few minutes delay while Oracle propagates the information to this view. Use the DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO
procedure to immediately reflect the outstanding monitored information kept in the memory.
The GATHER_DATABASE_STATS
or GATHER_SCHEMA_STATS
procedures gather new statistics for tables with stale statistics when the OPTIONS
parameter is set to GATHER
STALE
or GATHER
AUTO
. If a monitored table has been modified more than 10%, then these statistics are considered stale and gathered again.
默认情况下Oracle会记录数据库表的变化, 只有变化超过10%的表,才会做自动分析.
发表评论
-
sqlldr总结参数介绍
2012-06-28 14:29 22819有效的关键字: userid -- ORACLE use ... -
11gR2新特性:STANDBY_MAX_DATA_DELAY
2011-12-27 11:18 1210Active Data Guard 是 Oracle 11g ... -
Linux下用OCCI或OCI连接Oracle
2011-07-26 12:00 2898首先,去oracle官网下载C ... -
Oracle Mutex实现机制
2011-05-18 23:43 1064我们都知道Latch是Oracle ... -
local_listener参数作用
2011-05-10 17:19 1924pmon只会动态注册port等于1521的监听,否则 ... -
oracle伪列 rowid和rownum
2011-03-23 10:00 3531整理ROWID一 一,什么是伪列RowID?1,首先是一种数 ... -
Oracle10gR2 主备自动切换之客户端Failover配置
2011-01-20 10:32 9501. 主库检查和设置假设新增的服务名为ORCL_TAF.LK. ... -
Oracle10g配置Dataguard的相关参数解释
2011-01-20 10:24 1264参考自 http://space.itpub.ne ... -
wrap加密oracle包
2011-01-19 11:52 1297大家都知道oracle的很多系统包是没法看它的源码的,orac ... -
利用hcheck检查数据字典一致性状态
2011-01-17 17:42 1812利用hcheck可以检查oracle数据字典的一致性状态,主要 ... -
插入相同的数据量普通表和临时表产生的redo对比
2011-01-17 16:08 985往临时表里插入相同量 ... -
Database Link与GLOBAL_NAMES参数
2011-01-12 13:36 1027当GLOBAL_NAMES参数设置为TRUE时,使用DATAB ... -
Oracle Streams学习二(清除流配置)
2011-01-09 23:34 1179在完成streams部署之后,如果需要重新配置或舍弃配置,可以 ... -
red hat enterprise 下完全删除oracle 数据库
2011-01-05 01:28 1756步骤 1 以oracle用户登录主、备节点。步骤 2 ... -
Oracle常用dump命令
2010-12-20 00:31 831Oracle常用dump命令,记录一下备查。 一.M ... -
oracle执行DML(事物过程)的深入研究(二)
2010-12-14 15:02 1535接上一节的 oracle执行DML(事物过程)的深入研究(一) ... -
oracle执行DML(事物过程)的深入研究(一)
2010-12-14 10:26 2802用户所执行 DML (即执行事务)操作在 Oracle 内部按 ... -
Oracle基本数据类型存储格式研究(二)—数字类型
2010-12-14 00:35 1471数字类型包含number,intege ... -
Oracle基本数据类型存储格式研究(一)—字符类型
2010-12-13 23:32 11701.char char是定长字符型,内部代码是:96,最多可 ... -
关于oracle rowid的一些内容 -- 转载
2010-12-13 15:47 779本文讨论的是关于oracle ...
相关推荐
文档里包含Oracle 11G统计信息自动收集及调整,可以使用优化数据库性能,不合理的统计信息会影响数据库性能
为了确保统计信息的准确性和时效性,Oracle 11g引入了一个名为DBMS_STATS的新包,并提供了一种称为“自动统计信息收集”的机制,该机制可以在预定的时间自动运行。 #### 自动统计信息收集的时间安排 根据题目中的...
3. 性能优化:Oracle 10g引入了自动工作负载仓库(AWR)和统计信息收集,以自动调整数据库性能。此外,Real Application Clusters (RAC) 功能允许多台服务器共享同一个数据库实例,提高可用性和性能。 4. 安全性:...
1. 数据库自动管理(Automatic Database Management):Oracle10G引入了自动存储管理(Automatic Storage Management, ASM),简化了存储配置,通过集成的文件系统和卷管理器实现数据库的存储管理。 2. Real ...
1. 优化器(Optimizer):Oracle 10g的优化器采用了新的成本估算方法和统计信息,提高了查询执行计划的选择准确性。 2. SQL Trace 和 TKPROF:这些工具用于诊断SQL语句的性能问题,生成分析报告,帮助改进查询效率。...
### Oracle 10g 自动性能诊断关键技术知识点 #### 一、Oracle 10g 可管理性概览 **1.1 自我管理数据库概念** - **定义**:自我管理数据库是指具备自动管理和自我诊断能力的数据库系统,能够简化数据库的日常管理...
Oracle 10g Administration 是一个全面的数据库管理系统,主要用于企业级的数据存储、管理和处理。作为IT行业的专业人士,了解Oracle 10g的管理是至关重要的,因为它涉及到许多关键的数据库管理概念和技术。以下是对...
8. 数据库性能优化:Oracle 10g提供了自动工作负载 Repository (AWR) 和统计信息收集,帮助管理员识别性能瓶颈。另外,通过SQL Tuning Advisor,可以自动建议优化查询的策略。 9. 版本控制:Oracle 10g引入了版本...
Oracle 10g提供了更强大的统计包(Statspack)和新的自动工作负载库(AWR),用于收集数据库性能数据,便于监控和诊断性能问题。 #### 2.3 使用Oracle Enterprise Manager Oracle Enterprise Manager 10g Grid ...
### Oracle 10g RAC 知识点详解 #### 一、Oracle 10g RAC 概念与原理 **Oracle Real Application Clusters (RAC) 是一种多实例集群技术,允许多个数据库实例同时访问同一个数据库。** 这种架构能够显著提高系统的...
在性能优化方面,Oracle 10G引入了自动工作负载 repository (AWR) 和统计信息收集工具,如Automatic SQL Tuning Advisor,帮助DBA分析数据库性能并提供优化建议。文档会详细介绍这些工具的使用方法和最佳实践。 ...
Toad for Oracle 10g是一款专为Oracle数据库管理设计的强大工具,由Quest Software公司开发。它提供了全面的数据库开发、管理和性能优化功能,深受DBA(数据库管理员)和开发人员的喜爱。以下是对Toad for Oracle 10...
Oracle数据库10g提供了一组集成的自我管理功能,可以在不受工作负载影响的情况下,简化管理、提高效率以及降低与系统管理相关的成本。本白皮书论述了Oracle新性能诊断和监控技术的基础架构和部件,该技术内置于...
Oracle 10g OCP(Oracle Certified Professional)是Oracle公司为数据库管理员提供的专业认证,它证明了持证者对Oracle 10g数据库系统的深入理解和专业技能。试题解析是备考这个认证的重要参考资料,通常涵盖了...
2. **性能优化**:Oracle 10g引入了自动工作负载仓库(AWRE)和SQL Tuning Advisor,它们可以帮助DBA分析和优化查询性能。理解执行计划,索引的使用,以及数据库的统计信息收集都是性能优化的关键。 3. **备份与恢复*...
Oracle10g引入了许多自动管理功能,简化了日常管理任务。 - **ASM(Automatic Storage Management)**:自动管理数据文件、控制文件等存储资源。 - **AMM(Automatic Memory Management)**:自动调整SGA和PGA大小...
Oracle 10g引入了自动存储管理(ASM),这是一个高性能的文件系统和卷管理器,用于管理数据库的物理存储。ASM可以自动平衡数据块在不同磁盘上的分布,提供高可用性和容错能力,同时简化了存储管理。 #### 2.2 Real ...