欢迎来到天天文库
浏览记录
ID:6306104
大小:145.50 KB
页数:4页
时间:2018-01-09
《深入解读oracle exadata技术1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、深入解读OracleExadata技术 自从Oracle和HP推出Exadata之后,我就很关注这个产品,之前也写了一篇Oracledatabasemachine介绍它。去年,Oracle和SUN合并后,推出了OracleExadataV2,相比较上一代产品有几个变化:第一,使用SUN的硬件;第二,宣称支持OLTP应用;第三,Oracle11gR2提供了更多的新特性。 ExadataSmartFlashCache ExadataV2整体架构并没有太多改变,换用了SUN的硬件,除了采用intel最新的nehalemCPU以外,每台storagecell更是配置了384GB的flash,这
2、也是为什么V2可以支持OLTP应用的关键。 Flashcache完全是自动管理,Oracle会根据数据的访问情况,决定哪些数据放在flashcache中。所有的数据都是先被写到普通磁盘上,再根据访问情况读入flashcache的,所以如果flashcard发生故障,数据不会丢失。当然,Oracle提供了方式,可以让用户手动将表或者索引pin在flashcache中。 在自动管理的方式之外,Oracle还允许用户人工创建flashdisks,和普通磁盘一样,这些flashdisks通过ASM输出给数据库使用,用户可以把一些访问非常频繁的数据文件放在上面。这些flashdisks不仅仅是ca
3、che了,所以ASM会在cell和cell之间做镜像。如果某块卡发生故障,那么整个storagecell上的flashdisks会offline,保证数据不会丢失。 Smartscan Smartscan是Exadata最重要的一个功能,它的作用就是把SQL放在每个cell上去运行,然后每个cell只返回符合条件的数据给数据库,这样就极大的降低了数据库服务器的负载和网络流量,并充分利用了cell的计算资源和IO资源。 传统方式:所有的数据都需要返回给数据库服务器,网络带宽要求高,所有的计算在数据库服务器上完成。 Smartscan:只返回符合条件的数据,减少网络带宽,并充分利用了c
4、ell上的计算和IO资源。 这里有一点要注意,在使用smartscan时,每个cell返回给DBserver的是结果集,而不再是传统的block,DBserver完成结果集的处理,并返回给客户端。 Smartscan如何处理join?是我一直想要搞清楚的问题。事实上,smartscan只能处理joinfiltering,而真正join的工作必须在DBServer上完成,而且smartscan仅适合于处理DSS环境的复杂join,对于OLTP类型的简单join,smartscan并不能发挥其优势。设想下面的查询: selecte.ename,d.dnamefromempe,deptdw
5、hereande.ename=’Jacky’ande.deptno=d.deptno; 假设采用nestedloopsjoin,smartscan只能完成e.ename=’Jacky’这个条件的过滤,然后将符合条件的emp表的数据返回到DBserver,然后由DBServer完成join的工作,逐条查询dept表(e.deptno=d.deptno)的数据。所以smartscan并不适合nestedloopjoin(我认为smartscan只有在适合的条件下才会启用),只有DSS环境的大数据量复杂join才会发挥出优势。而且smartscan只能完成filtering的工作,而不能真正完成
6、join的工作,这个与Greenplum数据库是不同的(有兴趣可以看我的文章,Greenplum技术浅析)。设想下面的查询(emp和dept都是大表): selecte.ename,d.dnamefromempe,deptdwheree.deptno=d.deptno; 假设采用hashjoin,由于没有任何过滤条件,smartscan只能把两个表的数据全部返回到DBServer上进行join操作,不过smartscan也不是一点用都没有,至少还可以进行column的过滤,只返回需要的字段就可以了。 Oracle的文档中,曾经提到对于一个大表和小表join时,smartscan会采用b
7、loomfilter来快速定位(可以看我以前的文章,有趣的bloomfilter)。方法是把小表build成为bloomfilter,然后在每个storagecell上对大表做scan,利用bloomfilter快速定位符合条件的结果,并返回给DBServer作join。 Storageindex 存储索引,顾名思义是在存储级别建立的索引,简单的说就是为表中的每一列数据建立一个索引,每个indexentr
此文档下载收益归作者所有