KingbaseES 逻辑读与物理读
oracle数据库中逻辑读,物理读

数据访问方式:数据库少不了和操作系统进行数据交互,表数据最好的方式是从数据库共享池中访问到,避免发生磁盘IO,当然如果共享池中没有访问到数据就难免发生磁盘IO。
物理读:从磁盘读取数据到buffer cache,消耗磁盘io,一般是全表扫描导致,这种情况就尽量用到索引减少数据访问以降低io。
逻辑读:通过从数据库buffer cache中获取数据(包含物理读),分为当前读和一致性读,当前读获取数据块的最新版本,进程会给读取的块加锁,一致性读读取是块的最新版本或者回滚段中的历史版本,不需要加锁。逻辑读消耗cpu。
直接路径读:从磁盘读取数据绕过buffer cache,直接读取到pga,通常是由于大表全表扫描或使用并行导致,oracle 11g 新特性,好处是能降低buffer cache争用,坏处是大量io消耗,
说明:KES数据库中不存在直接路径读的概念,那么针对物理读,和逻辑读和oracle中的定义也略有区别,下面看一下KES中逻辑读,物理读是如何定义的。
KInbgaseESV8R6中逻辑读,物理读
sys_stat_statements视图可以查看数据库性能的关键指标,以下是有关计算物理读,逻辑读的关键字段及其含义。
shared_blks_hit shared_buffer中的命中块数
shared_blks_read shared_buffer中未命中,从操作系统缓冲读进shared_buffer的块数,如果操作系统缓存中没有有关记录,则需要读取数据文件而发生物理磁盘IO,此过程理解为发生物理读。
shared_blks_dirtied shared_buffer中弄脏的总块数
shared_blks_written 从shared_buffer中写入的总块数,这里指从shared_buffer写入了操作系统缓存或写入数据文件而发生物理磁盘IO,此过程理解为发生物理写。
local_blks_hit 本地块缓冲命中总数,指temp_buffers中命中块数
local_blks_read 本地块缓冲未命中,从操作系统缓冲读进temp_buffer的块数,如果操作系统缓冲区没有找到,有可能发生物理IO,此过程理解为发生物理读
local_blks_dirtied temp_buffers中产生的脏块数
local_blks_written 从temp_buffers写入临时表,同理,此过程理解为发生物理写。
temp_blks_read 从临时文件temp_file读取到work_mem的块数,此过程理解为发生物理读。
temp_blks_written 从work_mem写入 temp_file总块数,发生物理io,此过程理解为发生物理写。
blocks 都是物理磁盘块在内存里的映射
shared blocks:共享数据库块,shared_buffers 上分配的数据块,各关系表都是从磁盘文件加载到shared-buffer后才能读写。
local blocks:临时表等只有本会话可以使用的数据块,别的会话看不到。
temp blocks: SQL 语句执行过程中,排序、Hash等操作需要的work_mem,maintance_work_mem 不够,使用磁盘文件排序、Hash等,这些临时文件对应的就是临时块,本会话可见。
4 种数据访问方式:
Hit:读数据页的时候,直接在 shared/local blocks 命中,没有发生磁盘 IO
dirty:写数据的时候,写入了 shared/local 数据库块,还没有发生磁盘 IO
read:物理读
written:物理写
注意区别于oracle的物理读,物理写,KES数据库包括了操作系统缓存信息,而尽管read,written这时候不一定会发生物理磁盘IO。所以与oracle中的物理读略有区别,oracle数据库中不考虑操作系统缓存。
temp blocks 只有 read/written 操作。没有数据库实例内的缓存。
对于逻辑读,物理读,kwr中的体现如图:

物理写:writte
逻辑读:hit
物理读:read

此部分展示了几个内存区域发生了物理IO,也就是sql没有在数据库内存区域找到对应数据,需要和操作系统进行交互。

也可以从设备上看到主机IO每秒写入/读取大小等指标判断物理读写对于磁盘的消耗。
KWR报告中的TOP SQL内容还展示了,可以据此查到消耗IO性能的sql,具体内容略过不展示。
按 I/O 时间排序的 SQL 语句
按逻辑读块数排序的 SQL 语句
按物理读块数排序的 SQL 语句
按物理写块数排序的 SQL 语句
KingbaseES 逻辑读与物理读的更多相关文章
- 初谈SQL Server逻辑读、物理读、预读
前言 本文涉及的内容均不是原创,是记录自己在学习IO.执行计划的过程中学习其他大牛的博客和心得并记录下来,之所以想写下来是为了记录自己在追溯的过程遇到的几个问题,并把这些问题弄清楚. 本章最后已贴出原 ...
- SQL Server逻辑读、预读和物理读
SQL Server数据存储的形式 预读:用估计信息,去硬盘读取数据到缓存.预读100次,也就是估计将要从硬盘中读取了100页数据到缓存. 物理读:查询计划生成好以后,如果缓存缺少所需要的数据,让缓存 ...
- SQL Server 中的逻辑读与物理读
首先要理解逻辑读和物理读: 预读:用估计信息,去硬盘读取数据到缓存.预读100次,也就是估计将要从硬盘中读取了100页数据到缓存. 物理读:查询计划生成好以后,如果缓存缺少所需要的数据,让缓存再次去读 ...
- SQL SERVER中的逻辑读,预读和物理读
sqlserver:数据存储方式:最小单位是页,每一页8k,sqlserver 对页的读取是具有原子性,也就是说,要么读取完整一页,要么完全不读取,不会有中间状态,而页之间的数据组织结构是B树 但是每 ...
- 初谈SQL Server逻辑读、物理读、预读【转】
前言 本文涉及的内容均不是原创,是记录自己在学习IO.执行计划的过程中学习其他大牛的博客和心得并记录下来,之所以想写下来是为了记录自己在追溯的过程遇到的几个问题,并把这些问题弄清楚. 本章最后已贴出原 ...
- 理解SQL SERVER中的逻辑读,预读和物理读
转自:https://www.cnblogs.com/CareySon/archive/2011/12/23/2299127.html 在我的上一篇关于SQL SERVER索引的博文,有圆友问道关于逻 ...
- sqlserver性能调优中的逻辑读,物理读,预读是什么意思
表 'T_EPZ_INOUT_ENTRY_DETAIL'.扫描计数 1,逻辑读 4825 次,物理读 6 次,预读 19672 次.SQL SERVER 数据库引擎当遇到一个查询语句时,SQL SER ...
- [SQL] 理解SQL SERVER中的逻辑读,预读和物理读
SQL SERVER数据存储的形式 在谈到几种不同的读取方式之前,首先要理解SQL SERVER数据存储的方式.SQL SERVER存储的最小单位为页(Page).每一页大小为8k,SQL SERVE ...
- SQL SERVER中的逻辑读取,物理读取,以及预读的理解
在SQLSERVER查询分析器中,当我们用Set Statistics on 语句来统计SQL语句或者存储过程I/O的时候, SQLSERVER会显示几个概念去词语:逻辑读取,物理读取,预读. 如下: ...
- SQLSERVER预读逻辑读物理读
预读:用估计信息,去硬盘读取数据到缓存.预读100次,也就是估计将要从硬盘中读取了100页数据到缓存. 物理读:查询计划生成好以后,如果缓存缺少所需要的数据,让缓存再次去读硬盘.物理读10页,从硬盘中 ...
随机推荐
- 简单了解HTTP、Websocket和Netty
前言 伴随着网络的快速发展,网络通讯越来越重要,通讯的快捷.安全.方便影响着用户的体验.本文将探讨这些技术的原理.特点以及在实际应用中的应用场景. 1.HTTTP(超文本传输协议) HTTP是一种传输 ...
- C++ 多线程的错误和如何避免(8)
不要重复获取同一个锁 问题:在获得一个锁并且没有释放该锁的前提下,再次尝试获取该锁会报错. 比如, #include <iostream> #include <thread> ...
- Array.forEach() 与 Array.map()这些方法的第三个可选参数 array 的作用
说明 let thisArray = [] thisArray.forEach((item, index, array)=>{ //为什么要有array,而不是直接用thisArray? }) ...
- 硬件开发笔记(十六):RK3568底板电路mipi摄像头接口原理图分析、mipi摄像头详解
前言 本篇继续分析底板原理图mipi电路原理图.mipi摄像头输入硬件接口详解. RK3568芯片摄像头接口 查看RK3568的芯片手册,摄像头接口并不支持直接sensor模拟信号输入,只 ...
- Celery异步处理任务时遇到的错误ValueError: not enough values to unpack (expected 3, got 0)
开启celery异步,终端命令: celery -A celery_tasks.main worker -l info 如果上面运行后,发送短信码的时候没有报如下错误: ValueError: not ...
- pyqt5学习示例
python代码编写pyqt5 主窗口的类型:有三种窗口 # 相关函数方法 setWindowTitle() # 设置主窗口的标题 resize() # 设置窗口的大小 statusBar() # 创 ...
- Golang标准库——io
原文:Golang标准库--io 1.io io包提供了对I/O原语的基本接口.本包的基本任务是包装这些原语已有的实现(如os包里的原语),使之成为共享的公共接口,这些公共接口抽象出了泛用的函数并附加 ...
- 【Azure K8S | AKS】在AKS中创建 StatefulSet 示例
问题描述 [Azure K8S | AKS]在AKS集群中创建 PVC(PersistentVolumeClaim)和 PV(PersistentVolume) 示例 [Azure K8S|AKS]进 ...
- 探索图片与Base64编码的优势与局限性
一.图片和Base64编码的关系: 图片是一种常见的媒体文件格式,可以通过URL进行访问和加载. Base64编码是一种将二进制数据转换为ASCII字符的编码方式,可以将图片数据转换为字符串形式. 图 ...
- 来也科技收购Mindsay背后:新旧势力交锋智能自动化备受关注
来也科技收购Mindsay背后:新旧势力交锋智能自动化备受关注 来也科技收购Mindsay背后:历程一波三折,意义非同寻常 来也科技收购Mindsay,国产RPA正式进军国际市场 收购Mindsay来 ...