oracle SQL 优化之量化IO速度 笔记
2022/1/4 19:04:07
本文主要是介绍oracle SQL 优化之量化IO速度 笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
SQL优化观看方法见最后:
1、推导IO响应时间(随机读)
服务器的硬盘一般都是15000转/分钟,它的io响应时间量化如下:
15000转/60秒
=60秒/15000转 (分子分母换下位置)
=1秒/2500转
=0.0004秒/转
可以得出结论IO响应时间是4毫秒,换句话说你的磁盘转一圈花费4毫秒肯定能找到你需要的数据(随机读)。
2、推导硬盘的iops
每秒支持的io个数的上限:
1秒=1000毫秒,io随机读的响应是4ms,意思就是花费4ms一个io,那一秒钟最多可以有1000/4=250个IO.那这个15000转的硬盘的IOPS就是250
3、磁盘最大的吞吐量
磁盘的吞吐量是由磁盘接口决定的,比如SATA,SAS接口
思考问题1:为啥操作系统iostat 命令显示,磁盘只有2mb/s,磁盘就100%busy了,是否意味着磁盘有性能问题呢?
.................
.................
.................
####IO 是如何被读取的!
对于磁盘而言,你需要告诉磁盘你从哪个块开始读(start_offset),读几个块:
pread(文件号,start_offset,size)
1>对于数据库而已,每个block是8192,有个数据文件文件号是1,你需要从block id=2(编号0,1,2)开始读,读1个block(单块读)。它对应的命令就是:
pread(1,2*8192,8192).
数据库的读写在操作系统层大部分都是随机读和随机写
2>对于操作系统而已,IO寻址方式有:
随机读 ---数据位置相差大,比如第一个是block id 1,第二个是block id是2000
随机写
顺序读 ---数据位置相邻,比如block id 1和block id 2的读取
顺序写
------回归刚才那个问题
思考问题1:为啥操作系统iostat 命令显示,磁盘只有2mb/s,磁盘就100%busy了,是否意味着磁盘有性能问题呢?
=1》如果单块读:一次读取一个block,,一个block 8k,它一秒钟读取了250次,那它这一秒读取的大小是250*8K=2000K=2M,这是由于达到iops上限,所以iostat看到磁盘是100% busy了,是否意味着磁盘有性能问题呢?
=2》如果多块读,一次读取128个block=1M,它一秒钟读取了250次,那这一秒的速度是250M/s
所以IO读速度取决于每次IO读取的block数
思考问题2:一条update语句执行过程中涉及的IO类型
1>客户端发出update语句 set id=5 where id=3
2>前台进程判断id=3的数据在不在内存中,不在就将硬盘中的数据随机读取到内存-buffer cache中
3>在共享内存中把id=3修改成5, 改之前把前镜像写入undo,commit后把log buffer (记录undo和data file的修改日志) 通过LGWR进程以顺序的方式写入到redo log
4> DBWR 进程 异步把脏数据随机写入磁盘
------------------SQL观看方法--------:
-----------------------------------------------
本人淘宝店铺,欢迎咨询:
oracle 经营范围: | ||
1、单机安装 | 2、rac安装 | 3、dataguard 配置 |
4、备份恢复 | 5、漏洞修复 | 6、GoldenGate安装 |
7、数据迁移 | 8、版本升级 | 9、问题咨询 |
https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.50111debPYFG5q&ft=t&id=608457389678
这篇关于oracle SQL 优化之量化IO速度 笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升