oracle sql性能量化——基础数据
DESCRIPTION
主要是关于CPU,内存,硬盘,网络性能的基础数据,通过这些基础数据来测算oracle的一些主要操作性能。PPT里的数据有些是计算的,有些是综合测试的,由于硬件差异太大,所有的数据仅当是数量级的参考。TRANSCRIPT
![Page 1: Oracle sql性能量化——基础数据](https://reader035.vdocuments.pub/reader035/viewer/2022080212/5597931d1a28abdd108b45e3/html5/thumbnails/1.jpg)
Oracle SQL 性能量化(一)
叶正盛
2010-08
http://blog.csdn/net/yzsind
——基础性能数据篇
![Page 2: Oracle sql性能量化——基础数据](https://reader035.vdocuments.pub/reader035/viewer/2022080212/5597931d1a28abdd108b45e3/html5/thumbnails/2.jpg)
CPU 发展历程
年代 频率 带宽 延时
1982 286 12.5M 2MB/s 320ns
1985 386 16M 6MB/s 313ns
1989 486 25M 25MB/s 200ns
1993 Pentium 66M 132MB/s 76ns
2001 P4 1.5G 6.4GB/s 15ns
2007 Core i7 2.6G/4 核 25.6GB/s 5ns
性能提升 832 12800 64
![Page 3: Oracle sql性能量化——基础数据](https://reader035.vdocuments.pub/reader035/viewer/2022080212/5597931d1a28abdd108b45e3/html5/thumbnails/3.jpg)
内存发展历程
年代 规格 容量 带宽 延时
1980 DRAM 64KB ? 300ns
1986 FAST DRAM 256KB 176MB/s 170ns
1991 EDO RAM 4MB 264MB/s 100ns
1997 SDRAM 64MB 533MB/s 62ns
2001 DDRAM 256MB 1.6GB/s 52ns
2004 DDR2 512MB 3.2GB/s 40ns
2007 DDR3 1GB 17.1GB/s 30ns
性能提升 1562 200 10
![Page 4: Oracle sql性能量化——基础数据](https://reader035.vdocuments.pub/reader035/viewer/2022080212/5597931d1a28abdd108b45e3/html5/thumbnails/4.jpg)
硬盘发展历程
年代 转速 RPM 容量 带宽 延时
1983 3600 30MB 0.6MB/s 48.3ms
1990 5400 1.4GB 4MB/s 17.1ms
1994 7200 4.3GB 9MB/s 12.7ms
1998 10000 9.1GB 24MB/s 8.8ms
2003 15000 73.4GB 86MB/s 5.7ms
2009 15000 320GB 160MB/s 5ms
性能提升 4 10067 267 9.66
![Page 5: Oracle sql性能量化——基础数据](https://reader035.vdocuments.pub/reader035/viewer/2022080212/5597931d1a28abdd108b45e3/html5/thumbnails/5.jpg)
以太网指标发展
年代 速率 延时
1978 以太网 10Mb/s 3ms
1995 快速以太网 100Mb/s 0.5ms
1999 G 以太网 1Gb/s 0.34ms
2003 10G 以太网 10Gb/s 0.19ms
性能提升 1000 16
![Page 6: Oracle sql性能量化——基础数据](https://reader035.vdocuments.pub/reader035/viewer/2022080212/5597931d1a28abdd108b45e3/html5/thumbnails/6.jpg)
IO 各层次性能汇总
CPU 内存 普通硬盘Cache
L1,L2,L3
延时: 0.5-15ns带宽: 20-60GB/s
30-100ns2-12GB/s
5-20ms50-200MB/s
SSD 硬盘10us-1ms50MB-2GB/s
网卡
100us-1ms100MB-10GB/s
网卡
带宽: 133-12800MB/s
![Page 7: Oracle sql性能量化——基础数据](https://reader035.vdocuments.pub/reader035/viewer/2022080212/5597931d1a28abdd108b45e3/html5/thumbnails/7.jpg)
硬件发展方向
• CPU : 多核,大容量 CACHE ,复杂指令
• 内存:多位读取,大容量
• 硬盘:前置低延时的 SSD ,大容量,大容量 CACHE ,转变为磁带作用
• 网络:高带宽,无线,网络供电
![Page 8: Oracle sql性能量化——基础数据](https://reader035.vdocuments.pub/reader035/viewer/2022080212/5597931d1a28abdd108b45e3/html5/thumbnails/8.jpg)
Oracle 数据库在一个 2G 的单核 CPU 1 秒可做的事情
次数 动作
10 连接数据库
100 硬盘物理读,注:非 SSD 硬盘
1000 简单 SQL 硬解析, select * from t where pk=?
10000 简单 dml 加 Commit
100000 逻辑读
1000000 Hash 运算, 10 字节排序,取 Sysdate
4000000 简单函数运算,如 substr 、 lower 之类的函数
10000000 Pl/sql 的 number 类型运算, i:=i+1
40000000 Pl/sql 的 pls_integer 类型运算 i:=i+1
以下数据与机器硬件性能、 Oracle 版本、参数关系密切,数据仅供数量级内的参考,仅用于快速评估
![Page 9: Oracle sql性能量化——基础数据](https://reader035.vdocuments.pub/reader035/viewer/2022080212/5597931d1a28abdd108b45e3/html5/thumbnails/9.jpg)
单条逻辑读 SQL 时间分布Select * from t where pk=?3 个索引逻辑读 +1 个数据块逻辑读
![Page 10: Oracle sql性能量化——基础数据](https://reader035.vdocuments.pub/reader035/viewer/2022080212/5597931d1a28abdd108b45e3/html5/thumbnails/10.jpg)
B 树索引对 DML 的影响
操作 时间 Block Changes Redo Size
Insert(No index) 6.985s 412746 61MB
Insert 10.9s 620766 94MB
Update(No index) 8.932s 400039 50MB
Update 13.14s 899875 100MB
Delete(No index) 11.516s 706188 87MB
Delete 14.849s 1009076 116MB
说明:一个普通表 10 万条记录逐条进行 DML 操作,建一个普通索引
测试结果:索引对于 Insert 性能降低 56%索引对于 Upate 性能降低 47%索引对于 Delete 性能降低 29%
![Page 11: Oracle sql性能量化——基础数据](https://reader035.vdocuments.pub/reader035/viewer/2022080212/5597931d1a28abdd108b45e3/html5/thumbnails/11.jpg)
谢谢!