令DBA迷惑的共享池核心概念总结(一)
我们知道shared _pool非常重要,在自动管理的环境情,可能会被其他的内存组件占用shared_pool的空间,当shared_pool空间不够时会引发各种各样的问题。在自动管理内存的环境下也可以定义各种组件的大小,这时候的定义是表示一个组件的最小值。所以建议给shared_pool_size手动设置一个最小值,这样保证shared_pool不...
Oracle读取和修改数据块的过程
Oracle读取和修改数据块的过程 Oracle数据库处理SQL都会经过三个过程:解析(parse)、执行(exec)、返回结果(fetch)。为了便于理解,我们首先省略的SQL的处理过程,而直接介绍数据块的读取或修改过程。 物理读和逻辑读概念 1.对要访问的块地址做HASH HASH(FILE#,BLOCK#) = hash_value(HV)...
定位热链和热块的方法
定位热链的方法declare v_num number;begin for i in 1..1000000 loop select ...
数据缓冲区热链和热块争用及解决方法
CBC LATCH争用(热链)latch:cache buffers chains多个server_process同时以排他模式访问了同一个CBClatch管辖的资源时出现。这个资源:可以是不同bucket中的不同buffer可以是相同bucket中的不同buffer可以是相同bucket中的相同buffer解决方法:1.唯一索引 2.加大buffer_cache内存,目的是将bucket数量增加,CBC l...
Oracle常用的转储方法总结
使用events id alter session set events '10046 trace name context forever,level 12'; alter session set events '10046 trace name context off';使用events name alter session set events 'err_num trace name errorstack level 10'; alter session set events 'err_num trace n...
进程状态解读(Process state)
程序是代码的集合,在特定环境(比如OS环境)下执行后会启动相应的进程来完成某个特定的任务。Oracle 数据库作为一种庞大的系统程序,在实例初始化阶段也会启动后台进程,用户进程(就是客户端程序,比如sqlplus,sqldeveloper、第三方开发的应用程序等)将请求发送给服务器进程至最终接受到请求结果的整个过程中,正确理解进程及其状态的转变过程对Oracle的深入研究很有必要,在此分享了两篇原文部分片段,如果涉及到版权什么的,请告知我,我将会立即删除。也写内容理解还是原汁原味的好...
treedump中定位块儿转储所需的文件和块儿号
首先为测试建立序列、表和索引:SQL>create sequence seq1;序列已创建。SQL>create table test as2 select seq1.nextval seq,object_id,object_name from dba_objects3 where rownumcreate index idx_test on test(seq) pctfree 0;索引已创建。SQL>select object_id,object_name from user_objects2 where object_name like 'IDX_%';OBJECT_ID OBJECT_NAME---------- ----------52403 IDX_TESTSQL>alter session set events 'immediate trace name treedump level 52403';会话已更改。SQL>[@mor
该博客原创博文的索引
如果只做记录而不进行一定分类、目录等,则时间长了Blog中的文章也有可能变得“一团糟”。虽然文章可以搜索,但是针对本Blog文章不熟悉的人宁愿百度或谷歌,也不一定在这儿进行搜索文章。 至于以上原因,为了自己和读者阅读方便,决定给该Blog中的所有文章做个文章索引 (Article index),我认为索引不仅DB所需而且Blog也是...