|
|
||||||||||||||||||
|
||||||||||||||||||
|
|
||||||||||||||||||
|
|
【内容摘要】测试数据库是Oracle10g 10.2.0.3,实际上这个等待事件也是从Oracle 10g开始引入的,用来标识表空间或数据文件扩展时的等待。 Oracle 需要将系统块格式化为Oracle数据块,然后才能提供数据库使用。 【内容摘要】在DBA_TABLES字典表中有一个degree字段,这个字段代表并行查询在数据表上的并行度,在RAC环境中,这个参数还和实例有关。 【内容摘要】Resize datafile会触发一个文件级检查点,今天讲课的时候和大家提到过这个,记录一下。 【内容摘要】今天一个朋友在MSN上问我,Varchar2(4000)能存多少数据? 他说他的Varchar2(4000)有的条目,用lengthb计算,达到了4046. 【内容摘要】由于某些Linux内核使用32位无符号长整型来计算时间,32位的最大值就是0xffffffff,再加1就将溢出变为0 【内容摘要】昨天提到的事务恢复问题,有人问是否真要回滚几天那么久? 【内容摘要】由于死事务已经无法通过v$transaction来观察,所以必须通过内部表来进行判断。 这个内部表是x$ktuxe,该表会记录Dead事务的恢复进度 【内容摘要】在x$ksmsp.ksmchcls的分类中,还有两外几个分类,这几个分类是R-free/R-freea/R-perm 【内容摘要】但是最终Oracle不认为这是一个Bug,因为即使底层表x$kglob的相关值定义从KQFCINT() 变更位 KQFCUIN()。也只不过将这个限制扩大了一倍而已,这个限制早晚还会被达到。 【内容摘要】我认为BMB的结构应该是均衡的,同时段头的PAGETABLE SEGMENT HEADER同时充当了第0个3级位图块的角色。 【内容摘要】也就是说你不查询就不知道current_scn的值,你查询它就变化,是不是有点向薛定谔的猫的那种感觉? 【内容摘要】真理是需要不断摸索才能发现的。 【内容摘要】归档进程的数量是受初始化参数log_archive_max_processes控制,初始的,这个参数设置为2,Oracle启动两个归档进程 【内容摘要】这个root dba指向了1.417对象,而1.417对象的上一个对象正是bootstrap$,Oracle通过1.417找到了bootstrap$对象就可以启动了数据库。 【内容摘要】最显著的等待是LOG FILE SYNC,最终发现问题出在LGWR进程,由于该进程活动过于频繁,该进程在系统上的nice值被调至68,AIX上缺省进程nice值为60,nice值越高表示优先级越低。 【内容摘要】在Linux/Unix上,Oracle在很多地方都从系统取得时间。 【内容摘要】我们知道从Oracle9i开始,Oracle引入了Peeking of User-Defined Bind Variables的特性,这个特性可以用来在存在数据倾斜时对执行计划纠偏。 然而这一特性也可能带来一些副作用,所以Oracle同时引入了一个内部参数用于控制这一特性 【内容摘要】38003事件的作用是:CBO Disable column stats for the dictionary objects in recursive SQL 也就是说可以将部分对象从启动的bootstrap$需要里剥离出来,从而可以被在线rebuild. 【内容摘要】前几天说过,Oracle10g Events CONTROLF的改变,当时猜测控制文件的变化可能是为了满足Oracle10g Grid运算支持大量并行实例的需要。 【内容摘要】在ITPUB上有朋友遇到SYSTEM表空间快速扩展的问题,经过如下代码查询,可以找出系统表空间中占用空间最多的Top9对象 【内容摘要】这种机制其实是为了满足分布式事务(Distributed Transaction)的需要,只不过这里通过db link被触发。 【内容摘要】首先获取域名解析服务器,在根据host.conf文件确定解析顺序,因为缺省hosts文件优先,又继续读取/etc/hosts文件。 如果hosts文件存在解析关系,则返回信息;如果不存在,则继续问询DNS服务器,获得解析地址,如果不能解析,则会出错: 【内容摘要】我以前介绍过获得redo block size的方法,当然也可以通过dbfsize工具获得。 现在在这里我想介绍的是另外一种非典型方法,有多非典型呢? 问题来自于N年前我在一个客户的机器上部署的监控脚本,现在那些脚本看来还在运行着,我最近收到了大量类似如下内容的邮件 【内容摘要】如果我们使用脚本创建数据库,那么最先运行的是一个叫做CreateDB.sql的脚本。 这个脚本发出CREATE DATABASE的命令,具体类似如下的例子: 【内容摘要】我们可以想象,如果控制文件是从备份中恢复的,那么数据库在open过程中又将如何呢? 【内容摘要】在上一讲中,我们说过:当我们使用file_hdrs事件来转储数据文件头信息时,Oracle会转储两部分信息,一部分来自控制文件,一部分来自数据文件,在数据库启动过程中,这两部分信息要用来进行启动验证。 【内容摘要】准备用几篇稿子来记录一下ITPUB上关于数据库Open的一个问题。具体问题参考ITPUB链接:http://www.itpub.net/609499.html 我们知道,可以通过一个内部事件来转储数据文件头信息,这个常用的命令是: alter session set events 'immediate trace name file_hdrs level 10'; 那么我们来看一下这个命令得到的trace文件及内容。immediate关闭数据库,在mount状态下执行该命令: SQL> startup mount;ORACLE instance started. Total System... 【内容摘要】上周了解了一下IBM的压缩技术,打算对比一下Oracle的表压缩技术做点研究,先讨论一下Oracle的表压缩技术. 从Oracle9iR2开始,Oracle推出了压缩表技术(table compression),用于压缩数据表中的重复数据,以节省存储空间,压缩技术倾向于在数据仓库中使用。 压缩在数据块级生效,当数据表定义为压缩时,数据库在每个数据块上保留空间存储重复数据的单个拷贝,保留空间被称为符号表(symbol table)。此后在具体行上不必再存储这些重复数据,只需要存放指向符号表相应数据的指针,存储空间因此得以节省。 关于压缩表的基本介绍,参考OTN上的文档:http://www.oracle.com/technology/oramag/oracle/04-mar/o24tech_data.html 我们看一下简单的测试: [oracle@jumper oracle]$ sqlplus eygle/eygle SQL*Plus: Release 9.2.0.4.0 - Production on Mon Jun 26... 【内容摘要】在很久以前,曾经介绍过Oracle的一个内部隐含参数_disable_logging,看到有朋友论述这个参数,今天忍不住做一点补充说明. 1.当然,隐含有风险,设置请谨慎. 2.最初在9.2.0.6 Solaris版本上,设置该参数会触发Bug:3868748 使得数据库无法启动. 从警告日志中,通常可以获得的错误提示是: ORA-07445: exception encountered: core dump [kcrfwcint()+1625] [SIGFPE] [Integer divide by zero] [0x828739D] [] []... 【内容摘要】今天下班时,同事说,一个数据库上的Job进程不能启动,我登陆上去查看,果然,时间再次停止运行: SQL> select * from v$timer; HSECS----------4294967295 SQL> / HSECS----------4294967295 此前曾经遭遇这个Bug,当主机持续运行497 days 2 hrs 28 mins 时,数据库系统时间将会停止. Bug出现: $ uptime6:27pm... 【内容摘要】我们都知道为了防止热备期间的分裂块问题,Oracle在热备过程中会对修改块进行全块的Redo记录. 偶然发现居然还存在一个隐含参数可以控制这个行为: SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ2 FROM SYS.x$ksppi x, SYS.x$ksppcv y3 WHERE x.inst_id = USERENV ('Instance')4... 【内容摘要】Oracle的10203事件可以用来跟踪数据库的块清除(cleanout)操作,从事件列表中,我们可以知道该时间的含义为:block cleanout 。 该事件需要在系统级设置,重启数据库后生效: SQL> alter system set event="10203 trace name context forever" scope=spfile; System altered. SQL> shutdown immediate;Database closed.Database... 【内容摘要】在非归档模式下(归档模式会导致日志损坏),使用_disable_logging可以禁止日志的生成,从而可以提高某些特殊操作(如批量加载或Benchmark测试等)的性能. 我们可以来看一下这个禁止是如何完成的. 启动2个Session,一个用于管理,一个用于测试. 1.Session 1 ,使用SYS用户连接数据库,当前_disable_logging未设置,数据库处于正常状态 $ sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.4.0 - Production on Fri Apr 14... 【内容摘要】设置了_disable_logging参数,可以禁用日志的生成,从而提高某些测试的性能. 以下测试,纯属测试目的,其他内容请参考本站其他文章: http://www.eygle.com/archives/2006/04/more_about_disable_logging.html 禁用日志情况下: SQL> connect / as sysdbaConnected.SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startupORACLE instance started. Total... 【内容摘要】在很久以前,曾经介绍过Oracle的一个内部隐含参数_disable_logging,看到有朋友论述这个参数,今天忍不住做一点补充说明. 1.当然,隐含有风险,设置请谨慎. 2.最初在9.2.0.6 Solaris版本上,设置该参数会触发Bug:3868748 使得数据库无法启动. 从警告日志中,通常可以获得的错误提示是: ORA-07445: exception encountered: core dump [kcrfwcint()+1625] [SIGFPE] [Integer divide by zero] [0x828739D] [] []... 【内容摘要】伴随自动PGA调整新特性的引入Oracle随之引入了一系列新的视图,V$PGASTAT就是其中的一个.... 【内容摘要】 在v$tempfile与v$sort_usage之关系解析一文中,我们注意到对于临时文件的绝对文件号(AFN),Oracle的分配规则和常规数据文件并不相同. 【内容摘要】在前面的V$TEMPSEG_USAGE与Oracle排序中我谈到V$TEMPSEG_USAGE和V$SORT_USAGE同源,其中的SEGFILE#代表的是绝对文件号(AFN). 【内容摘要】如果程序中使用了临时的LOB类型变量,Oracle会分配临时空间,如果并发很高,初始区很大,那么数据库可能产生严重的TEMP表空间的不足问题 【内容摘要】刚才Kamus说起V$TEMPSEG_USAGE这个视图,看着很眼生,我说没注意过,然后动手查一下这个东西究竟来自何方. 查询dba_objects视图,发现原来这是一个同义词。 【内容摘要】我们可以通过如下命令Dump日志文件头,获得关于Redo Log File的一些重要信息: 【内容摘要】在不同的版本中,Oracle的检查点策略一直在不断的调整优化,而从Oracle7之后,Oracle不在文档中透漏更多的信息给我们. 【内容摘要】我们注意到,在Oracle9iR2中,和DBWR相关的统计事件有12个 【内容摘要】为了避免DBWR不必要的唤醒及过于活跃,从Oracle10g开始,Oracle对DBWR的SCAN间隔进行了调整. 【内容摘要】这说明Heartbeat并非在数据库Open状态下才会更新,也说明HeartBeat是用来维持实例的Mount状态检测. 【内容摘要】今天调整了一下,手工建立了一个数据库,顺利启动了Oracle7的数据库 【内容摘要】哪位朋友还有Oracle7.3 For Nt版本的数据库,能否帮忙提供一个,急需该版本进行一些测试. 【内容摘要】X$KCCCP--[K]ernel [C]ache [C]ontrolfile management [c]heckpoint [p]rogress 【内容摘要】在Oracle中有一个事件叫Heartbeat,这个词在很多地方被提及,并且有着不同的含义(比如RAC中),我们这里要讨论的是CKPT的Heartbeat机制。 【内容摘要】很多时候,我们需要调整数据库系统的SCN值,有的是为了恢复的需要,如为了解决ORA-600 2662错误. 【内容摘要】oracle 内部使用了一个4G范围的数据来表示01/01/1988 00:00:00 ~ 08/18/2121 06:28:15 这段时间.它的算法简单,说来就是每个月都是用的31天来表示时间,每增加1秒,这个数值就增加1. 【内容摘要】如何获得当前数据库的SCN值... 【内容摘要】在解决2662错误之后,经常会出现Ora-00600 4193错误,经常可以在alert文件中看到的错误号类似 【内容摘要】SMON_SCN_TIME是Oracle数据库的系统表,用以进行辅助恢复等功能。 在Oracle9iR2中,SMON_SCN_TIME每5分钟被更新一次。 【内容摘要】很多时候,为了排除Cache对于测试的影响,我们常常需要手动刷新Buffer Cache,以促使Oracle重新执行物理访问。 【内容摘要】在ORA-00600 2262错误解决一文中,我曾经提到过,很多时候使用隐含参数_ALLOW_RESETLOGS_CORRUPTION后resetlogs打开数据库,我们可能会由于SCN不一致而遭遇到ORA-00600 2662号错误,这里给出一个完整的例子及解决过程。 【内容摘要】(把以前写的一点简单东西转在Blog上) 初始化参数db_file_multiblock_read_count 影响Oracle在执行全表扫描时一次读取的block的数量. db_file_multiblock_read_count的设置要受OS最大IO能力影响,也就是说,如果你系统的硬件IO能力有限,即使设置再大的db_file_multiblock_read_count也是没有用的。 理论上,最大db_file_multiblock_read_count和系统IO能力应该有如下关系: Max(db_file_multiblock_read_count) = MaxOsIOsize/db_block_size 当然这个Max(db_file_multiblock_read_count)还要受Oracle的限制,目前Oracle所支持的最大db_file_multiblock_read_count 值为128. 我们可以通过db_file_multiblock_read_count来测试Oracle在不同系统下,单次IO最大所能读取得数据量: 我们可以看到,在以上测试平台中,Oracle最多每次IO能够读取128个Block,由于block_size为8k,也就是每次最多读取了1M数据. $ sqlplus "/ as sysdba" SQL*Plus: Release... 【内容摘要】Oracle Number Store Internal Dump 【内容摘要】今天看到有一个朋友因为Move了一个系统表DEPENDENCY$,在没有Rebuild索引的情况下,重起数据库,结果收到ORA-01502错误,数据库无法启动 【内容摘要】shmmax内核参数定义单个共享内存段的最大值,如果该参数设置小于Oracle SGA设置,那么SGA就会被分配多个共享内存段。这在繁忙的系统中可能成为性能负担,带来系统问题。 【内容摘要】继续上一个测试,使用隐含参数_ALLOW_RESETLOGS_CORRUPTION后resetlogs打开数据库后,我们说很多时候你会遇到ORA-00600 2662号错误,这个错误的含义是:A data block SCN is ahead of the current SCN. The ORA-600 [2662] occurs when an SCN is compared... 【内容摘要】今天浏览metalink,看到这篇Interpreting Raw SQL_TRACE,比较老的一篇文章了,但是确实很有用,所以决定大略翻译一下吧。 我们知道有几种方法可以得到一个SQL语句执行时后台的trace文件,一个是用SQL_TRACE,一个是用DBMS_SUPPORT包或者DBMS_SYSTEM包,还有一种就是直接使用10046 event。 使用10046 event的方法大致如下: alter session set events '10046 trace name context forever, level 12'; your sql... 【内容摘要】提示:Oracle的隐含参数只应该在测试环境或者在Oracle Support的支持下使用。 在使用_disable_logging进一步的测试中,试图通过switch logfile进行日志切换,结果重起居然报出日志文件损坏。 SQL> startup ORACLE instance started. Total System Global Area 97588504 bytes Fixed Size 451864 bytes Variable... 【内容摘要】提示:Oracle的隐含参数只应该在测试环境或者在Oracle Support的支持下使用。 从Oracle的系统表中,我们知道Oracle存在一个隐含参数_disable_logging可以用于禁用日志生成,这个参数显然只能用于测试目的(可以极大提高Benchmark测试的性能),禁止日志生成必然导致事务的不可恢复性。 SQL> select ksppinm,ksppdesc from x$ksppi where ksppinm like '%logging'; KSPPINM KSPPDESC -------------------- ------------------------------ _disable_logging Disable logging 因为特殊的需要,对这个参数进行了一点简单测试:... 【内容摘要】今天同事维护一个数据库,说观察到大量的PE锁竞争: 14:44:34 SQL> select * from v$Lock; ADDR KADDR SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK -------- -------- ----------... 【内容摘要】所谓的proof阵营,这是我自己起的名字,包含我们所尊敬的Tom,JL等大师。 所谓的voodoo阵营,这是根据Howard J. Rogers发表的Voodoo Tuning一文而来,eygle在Howard J. Rogers创造的新词组:Voodoo Tuning中也谈过一些看法,包括我们所熟知的(此处未用尊敬一词,个人立场已经很是鲜明,惭愧惭愧)Don,Mike等专家。 之所以又提到这个由来已久的论战,是因为今天收到dba-oracle的邮件,提到Mike Ault有新作describing the current Oracle myths and traps发表,但是邮件上给你URL居然不对,ft......于是就直接上dba-oracle找了一下,如果没有更新的文章的话,那么应该是这篇 Oracle Myths Revisited,同时又注意到Mike Ault还有另外一篇... 【内容摘要】前面我已经介绍了如何使用BBED模拟坏块,本文简要介绍如何使用BBED修复损坏的BLOCK。 1.备份数据文件 要想恢复损坏的文件,需要存在一个良好文件,本文简单冷备份一下文件. [oracle@jumper conner]$ cp users01.dbf users01.dbf.bak 2.修改BBED参数文件 加入备份文件 [oracle@jumper conner]$ vi filelist.txt 1 /opt/oracle/oradata/conner/system01.dbf 440401920 2 /opt/oracle/oradata/conner/undotbs01.dbf 104857600... 【内容摘要】使用BBED模拟数据块损坏 【内容摘要】实际上这是Unix/Linux的一个特性,Oracle的临时表空间,初始创建时,比如你指定14G,这个空间是延后分配的。 【内容摘要】redo log日志组处于高激活状态 【内容摘要】看来Don Burleson从来都没打算停止狡辩,最近Don又提出了一个 “Empirical” vs. “Research” DBAs的论题,邀请Jonathan Lewis等人参与,feel free to join the discussion,我已经不止一次见Don搬出这句话来。 中间一段非常有意思: Jonathan说一开始Don就提出: Remember the rule here that everyone... 【内容摘要】在回滚段头有一个重要的数据结构称为:Control SCN. 这个SCN是最近一个被重用的事务槽的SCN(重用是按事务的先后顺序重用的)。如果Control SCN比查询的Snapshot SCN新,那么Oracle不会试图去构造前镜像,而是马上返回ORA-01555错误,因为这个UNDO信息肯定已经被覆盖了。 这个Control SCN也会被用于delayed logging cleanout的提交SCN(仅当历史事务的UNDO信息已经被覆盖),在ITL中这个SCN被标记为U,代表"upper bound commit". 我们来看一下这个数据结构: SQL> create table ud ( n number );... 【内容摘要】性能调整和问题诊断是任何数据库管理人员必须面临的最大挑战和必须完成的重要管理任务。基于管理上的简化和易用性的努力,Oracle推出了Autometic Database Diagnostic Monitor (ADDM) ,通过ADDM,Oracle试图使数据库的维护工作变得更简单更容易。 AWR是新的管理体系结构的中心元素,它为了发现问题和自我调整,为oracle内部服务组件提供了采集,处理,维护和访问性能统计数据. AWR每60分钟就进行一次快照,所以最近的一次快照可能在一小时之前,这样AWR就没有足够的信息来进行当前的分析.典型的情况下,当前的分析需要最近的五到十分钟的详细信息.ASH(Active Session History)因此被引入用以保留最近的会话活动的历史信息. 因为记录会话的活动是非常昂贵的,ASH每秒采样V$session,记录会话等待的事件.不活动的会话不会被采样.这个采样工具是非常有效的,因为它直接访问oracle10g内部结构. ASH设计为在内存中的滚动的,在需要的时候早期的信息是会被覆盖的.ASH可以通过v$active_session_history视图来访问.这个实例每个样本的每个活动会话有一行. 由于数据量巨大,把所有的ASH数据写到磁盘上是不可接受的。一般是在写到磁盘的时候过滤这个数据。这是通过MMON和MMNL自动完成的。 SQL> select * from v$sgastat where name... 【内容摘要】诊断事件可以在Session级设置,也可以在系统级设置,通常如果要诊断全局错误,最好在系统级设置.... 【内容摘要】在AUM模式下,我们知道UNDO_RETENTION参数用以控制事务提交以后undo信息保留的时间。该参数以秒为单位,9iR1初始值为900秒,在Oracle9iR2增加为10800秒。但是这是一个NO Guaranteed的限制。 【内容摘要】Howard J. Rogers在他的网站上发布了这样一篇文章:Voodoo Tuning Voodoo Tuning是HJR创造的一个词,用以形容那些没有及时更新自己的知识技能的所谓的Oracle技术专家。 他们提供的很多调整建议是错误的、容易使人误解的,甚至是荒诞的. 他们提供的建议在有些情况下也许是正确定,如果你愿意回到Oracle5版或者6版。 但是这些建议在Oracle7.0,8.0 or Oracle8i中往往是完全错误的。 HJR在文中举了很多例子用以完善这个构词,很多例子来源于新闻组中的讨论,争论。 非常有趣并且极具深度。 HJR的很多例子来自Donald K. Burleson的文章,DK号称是具有超过20年经验的Oracle数据库专家,并且及其高产的出版了n多书籍,然而语焉不详、技术错误在他的文章中却屡见不鲜,这也是在新闻组中我们经常看到大家对DK的围攻的原因之一。 很多真正的高手声称对于DK的错误已经忍无可忍. HJR选择了(也许只是随意选择的)几篇文章,对文中的含糊及错误进行了剖析,我们从中可以知道所谓的专家是怎样语焉不详的,而作为一个严谨的技术工作者,又是怎样来回答这些技术问题的。 在最近的一次讨论中,AskTom上也有了一次精彩的辩争:Predictive Reorganization.... 【内容摘要】Jonathan Lewis在他的文章中,奇妙的利用B*Tree索引分裂的原则,通过24条记录就成功的构造出了24层的索引结构,从而验证了B*Tree索引的最大允许高度。 通常我们按照升序创建索引条目,索引会一直向右扩展;可是如果反过来,索引将会向左扩展。 这样,除了最左面一个Branch会有两个Leaf节点以外,所有Branch就只有一个Leaf节点。 我采用Oracle9.2.0.4,测试表空间Block_Size大小为2K. 背景文章: 1.B*Tree索引能有多高?--推荐Jonathan Lewis 的一篇经典文章 2.如何转储B*Tree索引的分枝结构 我们来看一下这个结构: [oracle@jumper udump]$ cat t.sql drop table t1; create table... 【内容摘要】Oracle允许对B*Tree索引进行转储,以显示B*Tree的层次结构。 示例如下: 1.首先选择要研究的索引 SQL> select index_name from user_indexes where index_name='I_BD_INVMANDOC_TS'; INDEX_NAME ------------------------------ I_BD_INVMANDOC_TS 2.找到该索引的object_id SQL> select object_id from dba_objects where... 【内容摘要】文章链接: http://www.dbazine.com/jlewis22.shtml 如果以上链接无法打开,请点击下载编译版本 有人说B*Tree索引最高能有24层,Lewis试图证明这个限制。 文章详细说明了作者的思路和尝试。 Lewis也说,可能这个问题不具有更多的应用意义,但是这个思考过程值得我们学习。 解决一个问题,思路是最重要的。 而在证明这样一个问题的过程中,所需要的基础知识异常广泛。 所以能完全读懂这样一篇文章,我们都会有所收获。 我自己学习Oracle的方法也是由点及面。 大家可以看看由 How High Can You Go? 这样一个点可以延伸出怎样的面。 最后作者给出了一个简单的解决方案,令人拍案叫绝。... 【内容摘要】一个进程产生redo时首先需要获得redo copy latch,获得了该latch以后才能把redo拷贝到Log Buffer中。 redo copy latch表明进程正在把redo拷贝入log buffer中,在此过程中,LGWR应该等待直到进程拷贝完成才能把目标Log buffer Block写入磁盘。 初始化参数_LOG_SIMULTANEOUS_COPIES,定义允许同时写redo的redo copy latch的数量。 在Oracle7和Oracle8里,_LOG_SIMULTANEOUS_COPIES缺省的等于CPU的数量。 从Oracle8.1.3开始,缺省的_LOG_SIMULTANEOUS_COPIES变成2倍的CPU数量,并且成为了一个隐含参数: SQL> @d:\script\gethiddenpar Enter value for... 【内容摘要】LGWR以block为单位把redo写入磁盘,redo block size是Oracle源代码中固定的,与操作系统相关。 通常的操作系统都是以512 bytes为单位,如:Solaris, AIX, Windows NT/2000, Linux 等 这个Log size可以从Oracle的内部视图中获得: SQL> select max(lebsz) from x$kccle; MAX(LEBSZ) ---------- 512... 【内容摘要】X$KSMSP的名称含义为: [K]ernal [S]torage [M]emory Management [S]GA Hea[P] 【内容摘要】X$KSLLCLASS--[K]ernel [S]ervice [L]ock [L]atches [CLASS] 从Oracle9iR2开始,Oracle允许对Latch进行分类,不同的分类可以用于不同的_SPIN_COUNT值。 这就避免了之前版本,一旦修改_SPIN_COUNT参数就会影响所有Latch的问题。从而可以在一定程度上控制该参数对于CPU的过量耗用。... 【内容摘要】SCN(System Change Number) ,也就是通常我们所说的系统改变号,是数据库中非常重要的一个数据结构。 【内容摘要】经常有人问,Oracle有哪些诊断事件,各是什么含义,怎样使用? 这些问题问得太多太多,Oracle没有过多的说明,实际上也不需要太多的说明。 我们可以通过以下代码查询得到Oracle的诊断事件及说明,通过这些,我想就足够了。列举在这里给自己参考。 【内容摘要】对于DML操作来说,索引对于数据库是一个性能负担.如果索引没有被有效的使用,那么其存在性就值得从新考虑. 从Oracle9i开始,Oracle允许你监视索引的使用 【内容摘要】Oracle X$ table 参考手册,来自Metalink.... 【内容摘要】关于shared pool的设置一直是一个争议较多的内容,很多文章上说,shared pool设置过大会带来额外的管理上的负担,从而在某些条件下会导致性能的下降. 那么这个管理上的负担指的是什么内容呢? 【内容摘要】由此我们可以看出,如果数据库系统中存在大量的硬解析,不停请求分配free的shred pool内存 除了必须的shared pool latch等竞争外,还不可避免的会导致shared pool中产生更多的内存碎片 (当然,在内存回收时,你可能看到chunk数量减少的情况) 【内容摘要】Library cache由一个hash表组成,而hash表是一个由hash buckets组成的数组. 每个hash bucket都是包含library cache handle的一个双向链表。 Library Cache Handle指向Library Cache Object和一个引用列表. library cache对象进一步分为:依赖表、子表和授权表等 【内容摘要】Oracle使用两种数据结构来进行shared pool的并发控制:lock 和 pin,Lock比pin具有更高的级别. Lock在handle上获得,在pin一个对象之前,必须首先获得该handle的锁定. 锁定主要有三种模式: Null,share,Exclusive. 【内容摘要】Oracle使用两种数据结构来进行shared pool的并发控制:lock 和 pin. Lock比pin具有更高的级别. Lock在handle上获得,在pin一个对象之前,必须首先获得该handle的锁定. 【内容摘要】我们注意到,在当前数据库中竞争最严重的两个latch是shared pool和library cache. 显然这极有可能是SQL的过度解析造成的. 【内容摘要】本文就Undo的内部结构作初步探讨,我们通过实验来看一下回滚段的内部结构. 【内容摘要】很多时候我们在进行进一步研究时需要转储(dump)Oracle的数据块,以研究其内容,Oracle提供了很好的方式,我们通过以下例子简单说明一下... 【内容摘要】我们知道,Nologging只在很少情况下生效,通常,DML操作总是要生成redo的 关于Nologging和append,一直存在很多误解,经过一系列研究,终于发现了Nologging的真相.... 【内容摘要】我们知道临时表在DML操作中可以减少redo的生成,从而在保存中间结果集时可以带来较大的性能提高 【内容摘要】我们知道,在Oracle数据库中,可以通过kill session的方式来终止一个进程.... 【内容摘要】Checkpoint cnt用于保证在正常操作中使用的数据文件是当前版本 在恢复时防止恢复数据文件的错误版本.Checkpoint cnt是一直递增的,即使表空间处于热备份模式. 【内容摘要】这个测试的起因是一些朋友讨论,Oracle在恢复时从何处获得日志文件名信息. 因为如果在重建控制文件的过程中,控制文件中的信息显然已经被清空了. 【内容摘要】HWM移动遵循: 每次移动32个blocks,但是HWM包含未格式化的block,每次格式化16个block或者16 –metadata blocks |
|||||||||||||||||
CopyRight © 2004 ~ 2008 eygle.com, All rights reserved.
|
||||||||||||||||||