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 逻辑读与物理读的更多相关文章

  1. 初谈SQL Server逻辑读、物理读、预读

    前言 本文涉及的内容均不是原创,是记录自己在学习IO.执行计划的过程中学习其他大牛的博客和心得并记录下来,之所以想写下来是为了记录自己在追溯的过程遇到的几个问题,并把这些问题弄清楚. 本章最后已贴出原 ...

  2. SQL Server逻辑读、预读和物理读

    SQL Server数据存储的形式 预读:用估计信息,去硬盘读取数据到缓存.预读100次,也就是估计将要从硬盘中读取了100页数据到缓存. 物理读:查询计划生成好以后,如果缓存缺少所需要的数据,让缓存 ...

  3. SQL Server 中的逻辑读与物理读

    首先要理解逻辑读和物理读: 预读:用估计信息,去硬盘读取数据到缓存.预读100次,也就是估计将要从硬盘中读取了100页数据到缓存. 物理读:查询计划生成好以后,如果缓存缺少所需要的数据,让缓存再次去读 ...

  4. SQL SERVER中的逻辑读,预读和物理读

    sqlserver:数据存储方式:最小单位是页,每一页8k,sqlserver 对页的读取是具有原子性,也就是说,要么读取完整一页,要么完全不读取,不会有中间状态,而页之间的数据组织结构是B树 但是每 ...

  5. 初谈SQL Server逻辑读、物理读、预读【转】

    前言 本文涉及的内容均不是原创,是记录自己在学习IO.执行计划的过程中学习其他大牛的博客和心得并记录下来,之所以想写下来是为了记录自己在追溯的过程遇到的几个问题,并把这些问题弄清楚. 本章最后已贴出原 ...

  6. 理解SQL SERVER中的逻辑读,预读和物理读

    转自:https://www.cnblogs.com/CareySon/archive/2011/12/23/2299127.html 在我的上一篇关于SQL SERVER索引的博文,有圆友问道关于逻 ...

  7. sqlserver性能调优中的逻辑读,物理读,预读是什么意思

    表 'T_EPZ_INOUT_ENTRY_DETAIL'.扫描计数 1,逻辑读 4825 次,物理读 6 次,预读 19672 次.SQL SERVER 数据库引擎当遇到一个查询语句时,SQL SER ...

  8. [SQL] 理解SQL SERVER中的逻辑读,预读和物理读

    SQL SERVER数据存储的形式 在谈到几种不同的读取方式之前,首先要理解SQL SERVER数据存储的方式.SQL SERVER存储的最小单位为页(Page).每一页大小为8k,SQL SERVE ...

  9. SQL SERVER中的逻辑读取,物理读取,以及预读的理解

    在SQLSERVER查询分析器中,当我们用Set Statistics on 语句来统计SQL语句或者存储过程I/O的时候, SQLSERVER会显示几个概念去词语:逻辑读取,物理读取,预读. 如下: ...

  10. SQLSERVER预读逻辑读物理读

    预读:用估计信息,去硬盘读取数据到缓存.预读100次,也就是估计将要从硬盘中读取了100页数据到缓存. 物理读:查询计划生成好以后,如果缓存缺少所需要的数据,让缓存再次去读硬盘.物理读10页,从硬盘中 ...

随机推荐

  1. Java中“==”与equals()

    1 前言 1.1 内存分区 Java中有6种存储区域(参考Java的六大存储区域),如下: 寄存器(register):位于处理器内部,处理速度最快,空间比较珍贵: 栈(stack):位于通用RAM中 ...

  2. 微信小程序实现原理

    微信小程序实现原理 微信小程序采用wxml.wxss.javascript进行开发,本质是一个单页应用,所有的页面渲染和事件处理,都在一个页面内进行,但又可以通过微信客户端调用原生的各种接口.微信的架 ...

  3. Modbus协议入门

    1.Modbus协议是不是开源的,免费的? 标准.开放,用户可以免费.放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权. 2.怎么传输,有线还是无线? 既可以有线传输如双绞线.光纤, ...

  4. win32 - 将原始音频样本转换为wav文件

    需要先从麦克风中采样,代码样本可以参考官方示例: WASAPI Capture Shared Event Driven 官方示例采样10s, 我们需要在WriteWaveFile函数下添加生成原始音频 ...

  5. Windows11补丁更新后无法使用Wifi和蓝牙

    最近在我的ThinkPAD T14上更新了Windows 11补丁,重启后Wifi和蓝牙鼠标都不能使用了,无法连接Wifi网络,也无法添加蓝牙设备. 使用厂家自带的管理工具查看驱动都是最新的,一度不知 ...

  6. Flask AttributeError 'Request' object has no attribute 'is_xhr'解决办法

    flask版本0.12.5 运行时会报以上错误,原因是因为werkzeug的版本大于等于1.x版本. 解决办法,降低werkzeug的版本即可 pip uninstall Werkzeug pip i ...

  7. 【LeetCode哈希表#4】梦开始的地方:两数之和(map),以及关于容器map的一些代码技巧

    两数之和 力扣题目链接(opens new window) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种 ...

  8. 第130篇:BOM(window对象)

    好家伙,本篇为<JS高级程序设计>第十二章"BOM"学习笔记   什么是BOM? BOM(Browser Object Model) 是指浏览器对象模型,是用于描述这种 ...

  9. 【Azure 应用服务】在App Service for Windows中实现反向代理

    问题描述 如何在App Service for Windows(.NET Stack)中,如何实现反向代理呢? 正向代理:客户端想要访问一个服务器,但是它可能无法直接访问这台服务器,这时候这可找一台可 ...

  10. [Python] 通过md5去重 筛选文件代码

    这是一些代码记录 这次是帮朋友恢复硬盘,扫描到的结果包含了好多个分区,通过将分区中的数据导出发现很多文件是重复的.所以想到通过python代码去重. 首先把所有分区的图片文件都放到一个文件夹A中,如果 ...