24 exdata架构探讨--优化主题系列
来源:互联网 发布:手机网络gsm cdma lte 编辑:程序博客网 时间:2024/06/05 09:03
为什么Oracle做数据库海量数据Oracle为什么有缺陷??
Oracle是不是sharedisk架构??rac系统是不是sharedisk架构多个实例用的是共享存储
意思就是说存储的I/O吞吐量始终上不去
因为Oracle一个进程一次I/O只能读1MB的数据
为什么数据仓库要开并行??
8个并行那么就是一次读8MB并行不是说你想开多少就多少
一个进程要耗费2GB的PGA内存你开8个并行就是16GB了
假如96GB内存一个进程最大耗费2GB的PGA
开并行是不是耗费CPU啊一般来说一个进程就耗费一个CPU或者说1个CPU2个进程
48个CPU的机器48*2=96个并行一个系统最大只能开大概20个并行
也就是说Oracle一次只能读20-30MB的数据是不是相对海量数据上TB的容量速度太慢??
你开并行是不是并发若了??你不能同一时刻多个用户去用并行吧??
30MB是1次I/O的时间不是说1秒的时间
一次I/O的时间怎么算??就是磁盘寻道寻址时间不到1S的可能就及时毫秒到几百毫秒
也就是说一秒钟可以进行读多少的数据??50毫秒那1秒钟就是20次I/O
30个进程才能这么牛逼的30个CPU才能这么牛逼
Oracle购买是按照CPU收费的有些客户为了节省成本CPU很少OLAP系统CPU少那去死吧
1分钟15GB左右Oracle没问题的如果开并行要上TB的数据要多久??
1024GB/15=??是不是100多分钟??
海量数据的话还是挺慢的因为Oracle吞吐量不行
有一些数据库是多节点的sharenothing的
比如现在有4个节点的其他数据库每个节点有自己独立的存储
独立存储的好处是什么??是不是4个节点都可以同时进行I/O??
这种架构对网络要求很严格一般这种网络就是万兆带宽的或者infiniband
比如我有一个表有AB C D四个节点每个节点存储一个表的部分数据
我扫描的时候每个节点都扫描即四个节点同时干活
这样是不是没有I/O瓶颈了??这样要进行双份冗余的MPP架构和greenplum就是这个GBase和DB2也是
所以说DB2有OLAP的优势但没有OLTP的优势
DB2为什么在银行广泛使用??因为当时中国建设系统时只有IBM能提供主机、数据库、存储
银行不会轻易换数据库的锁升级select都会产生锁的
行锁很可能内存不够了升级为表锁
Oracle的行锁存储在BLOCK里面DB2的行锁是存储在内存里面的
Oracle与UNDO这就是Oracle为什么读没有锁的原因UNDO是Oracle的专利UNDO坏处是单块读
我举个例子我有50个并发哦是不是要构造50个块出来??
UNDO在构造CR块时很耗费SGA优点大于缺点
SGA的buffercache缺点是在并发的情况下buffercache扛不住CR块越多latch竞争及越明显
但总体表现绝对优于DB2所以要尽可能的减少嘛
XD怎么解决I/O问题的呢??
大家首先看Oracle的XD也是rac也是sharedisk架构
XD有smartscan有压缩
selectid from test;
但是EXADATA就不这样玩了直接给你把ID这个列查询出来
有smartscan 类似列数据库行列混合存储的
OLAP大表与180额列XD扫描3个列有了这个技术是不是I/O减少了N多??
Oracle的硬件配置其实很烂的EXADATA其实久是Linux
海量数据要实现I/O大量扫描是不是要高级压缩??
以前在Oracle上面要存储1TB的数据在EXADATA里面可能就变成了1TB/10=100GB了
是不是I/O扫描就减少了??不是数据库解压的是直接在存储上解压
存储有CPUOracle又用了FLASHCACHE缓存其实就是SSD
给你搞几个TB的缓存要乘以10就是几十TB的缓存进一步减去了I/O
比如1TB的表只需要扫描3个列这个表有100个列30GB是不是??
smartscan就干这事情30GB是不是可以压缩一下??变成3GB
是不是还可以放到flashcache里面相当于从内存里读3GB速度飞快
压缩解压是存储节点自己玩的但速度很快现在CPU不是瓶颈的I/O才是
那个直接从缓存里读读多少个块跟Oracle最原始的原理没关系了
这就是为什么EXADATA能干趴下所有数据库的真正原因
有ASM磁盘坏了同样用的类似于RAID10
EXADATA上的SQL烂一样跑死人的
- 24 exdata架构探讨--优化主题系列
- 3 直方图--优化主题系列
- 2 基数与选择性--优化主题系列
- 4 聚簇因子--优化主题系列
- 5 统计信息--优化主题系列
- 6 执行计划--优化主题系列
- 7 访问路径概述--优化主题系列
- 8 访问路径介绍--优化主题系列
- 9 join方法--优化主题系列
- 13 笛卡尔积(CARTESIAN)--优化主题系列
- 18 索引扫描成本计算--优化主题系列
- 19 嵌套循环成本计算--优化主题系列
- 23 查看真实基数--优化主题系列
- 25 union代替or --优化主题系列
- 企业级系统架构设计技术与互联网应用技术结合主题一 - 大规模并发性能问题探讨
- 10 嵌套循环(NESTED LOOP)--优化主题系列
- 11 哈希连接(HASH JOIN)--优化主题系列
- 12 排序合并连接(SORT MERGE JOIN)--优化主题系列
- Js操作Select大全(取值、设置选中等等)
- VSCode自定义快捷键运行插件命令(为插件设置自定义快捷键)
- Java对象与json对象之间的转换
- 137
- Linux内核抢占机制(preempt)
- 24 exdata架构探讨--优化主题系列
- mysql查询报错: ORDER BY clause is not in GROUP BY..this is incompatible with sql_mode=only_full_group_by
- Linux free命令使用及解析
- vue webpack环境搭建
- C语言指针基础预习
- python之导入os
- 计蒜客 跳跃游戏二
- RxJava 中的map与flatMap
- Java时间串获取