介绍exadata中的smart Scan技术

什么是Smart Scan?

Smart Scan是Oracle Exadata的核心特性之一,也是Exadata实现高性能的关键黑科技。
它的核心理念是:
让存储层主动参与SQL处理,将数据过滤、投影等工作下推到存储服务器执行,从而大幅减少需要传输到数据库节点的数据量,提升性能。

对比传统存储

在传统数据库架构中:

  • 数据库节点从存储设备读取整块数据到内存。
  • 在数据库节点内过滤不需要的数据,进行SQL处理。
  • 大量无用数据传输,占用带宽,浪费CPU资源。

在Exadata Smart Scan中:

  • 数据过滤和部分SQL处理直接在存储服务器(Exadata Storage Server)上执行。
  • 只有真正需要的数据才传回数据库服务器。
  • 大幅降低数据传输量和数据库服务器负担。

Smart Scan的主要功能

1. Predicate Filtering(谓词过滤)

  • SQL中的WHERE条件下推到存储服务器。
  • 只返回符合条件的行,丢弃不符合条件的数据。

例子:

SELECT * FROM orders WHERE order_status = 'CLOSED'; 
  • 传统方式:读整个表的数据到数据库节点,然后过滤。
  • Smart Scan:在存储服务器直接筛选order_status='CLOSED'的行,丢掉其他数据,只返回符合条件的行。

2. Column Projection(列投影)

  • SQL中的SELECT子句所需的列下推到存储层。
  • 只返回查询需要的列,而不是整个数据块。

例子:

SELECT order_id, order_date FROM orders; 
  • 传统方式:读取整个表每行的所有列。
  • Smart Scan:只读取并返回order_idorder_date列。

3. Storage Index(存储索引)

  • Exadata存储服务器会自动维护存储索引,记录每个存储区域(cell storage region)中:
    • 最小值、最大值
    • NULL信息
  • 读取时,如果谓词条件(WHERE条件)与某个区域的存储索引完全不匹配,Exadata直接跳过该区域。

加速效果:避免无意义的磁盘扫描。


4. Automatic Decompression(智能压缩处理)

  • 对于压缩表(Hybrid Columnar Compression,HCC),Smart Scan可以直接在存储层解压并过滤。
  • 避免解压整个表块到数据库服务器,只传回符合条件的行。

5. Join Filtering(动态分区剪裁)

  • 对于分区表连接,Smart Scan可以根据主表的过滤条件,动态推断并裁剪子表的读取范围。
  • 类似“Bloom Filter”的效果,减少扫描数据量。

Smart Scan的核心价值

减少I/O传输量
降低数据库服务器CPU负担
最大化利用存储层的计算能力
提升OLAP和DSS查询性能


触发条件

Smart Scan的触发条件

  • 数据存储在Exadata存储服务器(Cell Storage)。
  • 数据表启用了Direct Path Read(直读路径),如:
    • 全表扫描(Full Table Scan)
    • 全索引扫描(Full Index Scan)
    • 并行查询(Parallel Query)

注意:Smart Scan一般不会对基于索引的单行查询(Index Lookup)生效,因为它们走的是buffer cache,无法利用存储层智能处理。


适用场景

Smart Scan特别适合:

  • **数据仓库(DWH)**场景。
  • 大表全表扫描
  • 复杂报表查询、分析查询
  • ETL场景中大量批量数据操作

总结

传统存储Exadata Smart Scan
数据全部传输到数据库服务器只传输过滤后数据
数据过滤在数据库服务器执行数据过滤下推到存储服务器
高I/O和高CPU消耗低I/O和低CPU消耗
存储设备是无智能设备存储设备参与SQL执行

关键点回顾

  • 📍 存储层过滤(Predicate Filtering)
  • 📍 列投影(Column Projection)
  • 📍 存储索引(Storage Index)
  • 📍 智能解压(Decompression)
  • 📍 动态剪裁(Join Filtering)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值