exadata (二) smart scan 与 offloading

学习笔记;
Offloading smart scan

Offloading

Offloading 是指将原来由数据进行的处理过程转移 存储层来完成;

exadata中能够offloading的内容主要包含以下方面

Column projection

exadata 的数据库层和存储之间的传递的数据能够只返回相关列的数据;是不是和现在很火的列存储相像啊;这样就可以提升很大的性能;

Predicate Filtering

整个功能是指在返回数据时指返回 相关的行;要知道在普通oracle中查询返回结果时最少是读取一个block的;

Simple Joins (Bloom Filters)

首先说下什么是bloom filters,它是一种算法,简单说就是为了提升查询速率;

1970burton H.BLOOM 开发;

Bloom filter 是一种数据结构用来支持成员关系查询,就是用来测试一个元素不是不一个给定集合的成员;

举例如下:

如图所示

bb

K是独立的hash 函数,返回值是1m之间;R为返回值;

Bloom filter 是一个m bit的数组,初始为0

r是处于 1m之间时,就将第R bit 设置为1;否则为0

Function offloading

oracle 将单行函数放入了存储层

对于 多行函数,其可能返回一行也可能返回多行;因此它们没有被offload

但是对于其他函数如decode等是在某些情况下可以offload

通过视图:V$SQLFN_METADATA 可以查询哪些是可以offload

压缩与解压缩

Exadata 一个十分引人注意的功能就是 hybrid columnar compressionHCC);

所有的压缩是在database tier 完成的;

但是当访问数据时:

如果是进行的smart scan,那么在进扫描时会在storage cell 中解压缩,并且解压缩的是需要访问的列,返回的数据全部是需要的数据,而不再需要过滤;

如果进行的是非smart scan,那么数据的解压缩就是在database tier 完成的;

加密与解密

原理和HCC类似,加密总是在database tier完成;

Smart scan 是在存储层解密,否则是在数据库层解密;

 

虚拟列

类似与伪列,用来存放生成的计算结果,但是这些值并不真正的存放,而是被访问是生成,所以当是 smart can 这些计算offload

Data Mining Model Scoring

可以查询视图v$sqlfn_metadata

Smart scan

Smart scan是指oracle会对数据在存储层中进行预过滤从而不必向数据库层返回大量数据,并直接将数据放入 pga中;但是 smart scan 能够选择将整个block 返回到sga中;

Smart scan 并不是对每次查询都生效,如果要进行smart scan就必须满足三个基本条件:

---必须是对一个对象的全部扫描

---必须使用 direct path read 机制

---对象必须存储在exadata storage

以上只是前提,在某些情况下即使满足这些条件也不会执行 smart scan

在如下情况下,oracle将不会执行smart scan

--- cluster table

--- index organized table

---启用了 rowdependence 的表

同时对于发生了 row chained 的数据也将无法进行smart scan

如何确定发生smart scan

Dbms_explan 并不能够直接显示是否进行了smart scan;通过以下方式可以进行查看:

10046 事件;

性能统计信息,如:V$SESSSTAT V$ACTIVE_SESSION_HISTORY.

通过视图 v$sql IO_CELL_OFFLOAD_ELIGIBLE_BYTES列;

通过REPORT_SQL_MONITOR 存储过程

fj.png1.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25656398/viewspace-709676/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25656398/viewspace-709676/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值