ENQ: KO - FAST OBJECT CHECKPOINT tips
ENQ: KO - FAST OBJECT CHECKPOINT tips
Question: What does the wait event ENQ: KO - FAST OBJECT CHECKPOINT mean? Can you show an example of the ENQ: KO - FAST OBJECT CHECKPOINT wait event? I get this event:
WAITING: enq: KO - fast object checkpoint
Answer: You see this enq: ko - fast object checkpoint event because an object level checkpoint that happens when you run direct path reads on a table.
When you run full table scan (or a parallel query full-table scan), you will see direct path reads wait event. But in the beginning you will also see the enq: ko - fast object checkpoint wait event. This will checkpoint any blocks that belong to the object you are doing direct path read so that latest change goes into the datafile.
Waiting for the enq: ko - fast object checkpoint means that your session wants to run a full-table scan and has sent the CKPT process a message with instruction to do an object level checkpoint. The CKPT process, in turn, then directs the database writer process (DBWR) to perform the checkpoint.
Deepak Bhatnagar notes a test to see the enq: ko - fast object checkpoint:
I updated only 1 row of the table TEST_A. When I executed SELECT query, it performed direct path read because table size is big as compared to buffer cache size.
Before direct path read, a wait event ENQ: KO - FAST OBJECT CHECKPOINT was posted.
This is because, before reading data blocks from data file directly to PGA, object level checkpoint was occurred and dirty blocks of the table TEST_A were written from buffer cache to data file.
Rampant author Mladen Gogala writes this about the enq: ko - fast object checkpoint
Prior to Oracle Database 10g administrators could specify the expected crash recovery time (MTTR) by setting the value of a checkpoint-related initialization parameter (FAST_START_MTTR_TARGET). They could do so by using the MTTR advisory, which helps predict the number of physical writes that would arise with different MTTR target values.
With Oracle Database 10g, the database can self-tune checkpoints activity to achieve good recovery times with low impact on normal throughput.
With automatic checkpoint tuning, Oracle Database takes advantage of periods of low I/O usage to write out data modified in memory to the data files without adverse impact on the throughput. Consequently, a reasonable crash recovery time can be achieved even if the administrator does not set any checkpoint-related parameter or if this parameter is set to a very large value.
Another enhancement done in the second release of Oracle Database 10g dramatically improves the performance of object-checkpoint requests issued for objects accessed through direct path reads, a situation that can occur with parallel query.
Before an object can be accessed through direct path reads, dirty buffers of the object must be written to data files on disk via an object-checkpoint request. Prior to Oracle Database 10g Release 2, the checkpoint request is handled by issuing a checkpoint for the tablespace the object belongs to, writing out all the dirty buffers for the entire tablespace.
在通过直接路径读取访问对象之前,必须通过对象检查点请求将对象的脏缓冲区写入磁盘上的数据文件。在Oracle Database 10g Release 2之前,检查点请求通过为对象所属的表空间发出检查点来处理,为整个表空间写出所有脏缓冲区。
Since a large number of objects may reside in the same tablespace, this implementation may cause large number of unnecessary disk writes. With the new release, a checkpoint request for a target object will only write out the dirty buffers of that object, without incurring any additional writes for the dirty buffers of other objects"
由于大量对象可能驻留在相同的表空间中,此实现可能导致大量不必要的磁盘写入。在新版本中,对目标对象的检查点请求只会写出该对象的脏缓冲区,而不会对其他对象的脏缓冲区进行任何额外的写入。“
Of course, this is a very important new performance feature. Many people have noticed and inquired about the "KO locks", queried v$lock_type and didn't investigate any further, but this dramatically changes the way the database functions.
It also dramatically impacts performance consideration as a big buffer cache in which large parts of a big table can be cached can cause a serious I/O contention and a lock contention. I'm looking for a mechanism to turn off this new behavior, at least until the next patch version, if not until the next major version.
Reference: MOSC bug 9881076
ENQ: KO - FAST OBJECT CHECKPOINT tips的更多相关文章
- truncate table很慢之enq: RO - fast object reuse和local write wait等待分析
使用ASSM表空间(默认模式)的时候,在dss系统中确实会出现truncate很慢的现象,但是他不会100%重现,得看概率.通过sql trace(对任何v$sysstat看起来资源消耗很低的情况,都 ...
- truncate表hang住(等待时间较长),出现enq:RO fast object reuse等待事件
有一个应用truncate表等待了一晚上,一个定时任务,跑了几年了,今天早上来发现昨晚没有执行完成,hang住了,查询发现等待事件 fast object reuse. 10.2.0.4的库 Bug ...
- Receptive Field Block Net for Accurate and Fast Object Detection
Receptive Field Block Net for Accurate and Fast Object Detection 作者:Songtao Liu, Di Huang*, and Yunh ...
- Paper Reading:Receptive Field Block Net for Accurate and Fast Object Detection
论文:Receptive Field Block Net for Accurate and Fast Object Detection 发表时间:2018 发表作者:(Beihang Universi ...
- [论文理解] Receptive Field Block Net for Accurate and Fast Object Detection
Receptive Field Block Net for Accurate and Fast Object Detection 简介 本文在SSD基础上提出了RFB Module,利用神经科学的先验 ...
- enq: TM - contention一例
今天下午,有台服务器出现异常,响应特别慢,io等待奇高,awr top 5事件如下: 经回查ash,找到了造成这些事件的sql语句,如下: select * from v$active_session ...
- 深入解析direct path read (转)
文章转自:http://www.itpub.net/thread-1815281-1-1.html 传统读取数据的方式是服务器进程通过读取磁盘,然后把数据加载到共享内存中,这样后面的进程就可以通过共享 ...
- Oracle 参数之_small_table_threshold
SQL> select * from v$version; BANNER ------------------------------------------------------------ ...
- Oracle 10046 trace文件分析
生成10046 trace文件: SQL> create table t10046 as select * from dba_objects; Table created. SQL> se ...
随机推荐
- JavaScript碎片—函数闭包(模拟面向对象)
经过这几天的博客浏览,让我见识大涨,其中有一篇让我感触犹深,JavaScript语言本身是没有面向对象的,但是那些大神们却深深的模拟出来了面向对象,让我震撼不已.本篇博客就是在此基础上加上自己的认知, ...
- blfs(systemd版本)学习笔记-为桌面环境构建xorg服务
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs准备使用桌面环境,首先需要构建xorg服务 xorg服务项目地址:http://www.linuxfromscratch. ...
- Openlayer3中应用的技术
ol3-ext有很多很丰富的效果,可以不用重复造轮子,ol3-ext示例大全:http://viglino.github.io/ol3-ext/ 在本次项目中使用到了ol3-ext的两个功能:图层管理 ...
- Linux网络编程--socket
1.socket的核心思想是,作为服务器间的进程间通信的最底层的实现,常用的大部分网络协议都是基于socket实现. 2.socket 是如何与最终的低层收发包建立联系的? 3.socket 是如何与 ...
- php json_encode中提示的中文总是返回"\u767b\u5f55\u6210\u529f\uff01"的解决办法
最近在练习使用 php 写一些简单的接口,但是在返回的消息中,如果有中文,在测试后总是返回: {"resultCode":200,"message":" ...
- getprop从哪获取属性
Android SystemProperties设置/取得系统属性的用法总结 通过调查得知,Android系统中取得/设置系统属性的用法参考以下3篇文章就足够了. 1.Android SystemPr ...
- Makefile中通过sed命令生成文件系统的selinux的配置文件vendor_filesystem_config.txt
今天在编译android-O(8.0)的时候,我自己新增加了一个ext4格式的分区,在编译这个分区的时候,需要对应的生成文件系统的配置文件xxxx_filesystem_config.txt,发现了生 ...
- ES搜索引擎基本操作
一.创建索引库 执行:,索引库的名称为zhen 结果(我已经创建过了,重复执行会报错): 二.创建索引 1.添加索引 2.添加索引(动态添加新列) 3.添加指定id的索引[根据id可以直接修改一前的索 ...
- Spark GraphX快速入门
GraphX是Spark用于图形并行计算的新组件.在较高的层次上,GraphX通过引入一个新的Graph抽象来扩展Spark RDD:一个定向的多图,其属性附加到每个定点和边.为了支持图计算,Grap ...
- 关于wordpress慢的问题
随笔记载: 关于wordpress访问慢的原因,主要是wordpress采用了google前端库, 需替换wordpress/wp-includes/script-header.php中所有的goog ...