oracle sql性能量化——基础数据

11
Oracle SQL 性能量化(一) 叶正盛 2010-08 http://blog.csdn/net/yzsind —— 基础性能数据篇

Upload: yzsind

Post on 04-Jul-2015

1.294 views

Category:

Technology


12 download

DESCRIPTION

主要是关于CPU,内存,硬盘,网络性能的基础数据,通过这些基础数据来测算oracle的一些主要操作性能。PPT里的数据有些是计算的,有些是综合测试的,由于硬件差异太大,所有的数据仅当是数量级的参考。

TRANSCRIPT

Page 1: Oracle sql性能量化——基础数据

Oracle SQL 性能量化(一)

叶正盛

2010-08

http://blog.csdn/net/yzsind

——基础性能数据篇

Page 2: Oracle sql性能量化——基础数据

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性能量化——基础数据

内存发展历程

年代 规格 容量 带宽 延时

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性能量化——基础数据

硬盘发展历程

年代 转速 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性能量化——基础数据

以太网指标发展

年代 速率 延时

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性能量化——基础数据

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性能量化——基础数据

硬件发展方向

• CPU : 多核,大容量 CACHE ,复杂指令

• 内存:多位读取,大容量

• 硬盘:前置低延时的 SSD ,大容量,大容量 CACHE ,转变为磁带作用

• 网络:高带宽,无线,网络供电

Page 8: Oracle sql性能量化——基础数据

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性能量化——基础数据

单条逻辑读 SQL 时间分布Select * from t where pk=?3 个索引逻辑读 +1 个数据块逻辑读

Page 10: Oracle sql性能量化——基础数据

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性能量化——基础数据

谢谢!