Oracle Exadata 性能优化

Oracle Exadata 性能优化

适用版本:Exadata X5 / X6 / X7 / X8 / X9 / X10 文档版本:v1.0 / 2026-07


1. 概述

Exadata 是 Oracle 专用数据库一体机[1]:

核心特性

  • Smart Scan
  • Storage Index
  • Hybrid Columnar Compression (HCC)
  • In-Memory
  • RAC 优化

2. Smart Scan

2.1 概述

  • 存储层过滤
  • 减少网络传输
  • 提升查询性能

2.2 触发条件

  • 直接路径读
  • 全表扫描
  • 行过滤/列投影

2.3 查看

SELECT name, value FROM v$sysstat 
WHERE name LIKE 'cell%smart scan%';

2.4 验证

EXPLAIN PLAN FOR SELECT * FROM big_table WHERE ...;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY));
-- TABLE ACCESS STORAGE FULL
-- storage 说明使用 Smart Scan

3. Storage Index

3.1 概述

  • 自动构建
  • 列最小/最大值
  • 跳过不必要 I/O

3.2 查看

SELECT name, value FROM v$sysstat 
WHERE name LIKE '%storage index%';

3.3 优化

  • 数据有序加载
  • 时间分区

4. HCC 压缩

4.1 类型

类型说明压缩比
QUERY LOW查询低4x
QUERY HIGH查询高6x
ARCHIVE LOW归档低8x
ARCHIVE HIGH归档高10-15x

4.2 创建

CREATE TABLE sales_history (
  ...
) COMPRESS FOR ARCHIVE HIGH
PARTITION BY RANGE (sale_date) (...);

4.3 优势

  • 节省存储
  • 减少 I/O
  • 提升扫描性能

5. In-Memory 列存

5.1 Exadata 集成

  • IMCS + Exadata
  • 双重列式
  • 极致分析

5.2 配置

ALTER SYSTEM SET inmemory_size = 100G;
ALTER TABLE sales INMEMORY MEMCOMPRESS FOR QUERY HIGH;

详细见:Oracle 12c In-Memory Column Store


6. RAC 优化

6.1 Cache Fusion

  • Exadata 网络优化
  • RDMA
  • 低延迟

6.2 Smart Scan 共享

  • 多节点共享 Smart Scan

6.3 I/O 负载均衡

  • Cell 节点均衡

7. IORM(I/O Resource Manager)

7.1 配置

cellcli -e alter iormplan objective=auto

7.2 数据库分配

cellcli -e alter iormplan 
  dbPlan=((name=oltp, level=1, allocation=80),
          (name=batch, level=2, allocation=20))

7.3 优势

  • I/O 优先级
  • 防止资源争用
  • 业务隔离

8. 监控

8.1 CellCLI

cellcli -e list cell attributes status
cellcli -e list griddisk attributes name,status
cellcli -e list metriccurrent

8.2 数据库层

SELECT * FROM v$sysstat WHERE name LIKE 'cell%';

SELECT name, value FROM v$sysstat 
WHERE name IN (
  'cell physical IO interconnect bytes',
  'cell physical IO bytes saved by storage index',
  'cell physical IO bytes eligible for predicate offload'
);

8.3 AWR

-- Exadata 特定指标
SELECT * FROM dba_hist_sysstat 
WHERE name LIKE 'cell%' AND snap_id BETWEEN 100 AND 110;

9. Smart Scan 优化

9.1 触发

-- 1. 直接路径读
SELECT /*+ MONITOR */ * FROM big_table WHERE ...;

-- 2. 全表扫描
-- 3. 谓词过滤

9.2 优化

-- 1. 并行
SELECT /*+ PARALLEL(8) */ ...;

-- 2. 列投影
SELECT id, name FROM big_table WHERE ...;

-- 3. 谓词

10. 性能对比

10.1 vs 普通 Oracle

维度普通Exadata
大表扫描Smart Scan 快
压缩基本HCC 高
I/O通用专用
RAC普通优化

11. 备份恢复

11.1 快速备份

  • Exadata I/O 高
  • RMAN 优化

11.2 增量

-- BCT
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;

12. 升级

12.1 Exadata 软件

# imageinfo
imageinfo

# 升级
patchmgr

12.2 数据库

DBUA 手动

13. 常见坑与排错

13.1 Smart Scan 未使用

-- 1. 检查 SQL
-- 2. 检查 HINT
-- 3. 检查表空间
-- 4. cell_offload_processing
SHOW PARAMETER cell_offload_processing

13.2 压缩无效

-- 1. 检查 COMPRESS
SELECT compression, compress_for FROM user_tables WHERE ...;

-- 2. 重新组织
ALTER TABLE ... MOVE COMPRESS FOR ARCHIVE HIGH;

13.3 Cell 故障

cellcli -e list cell attributes status
# 检查 ms, rs, cellsrv

14. 最佳实践

  1. 大表用 HCC:节省空间
  2. Smart Scan 大查询:性能
  3. 列投影:减少传输
  4. 并行:充分利用
  5. IORM 隔离:业务
  6. IM + Exadata:极致分析
  7. 定期监控:Cell 健康
  8. 升级及时:补丁
  9. Smart Scan 验证:生效
  10. 分区 + HCC:归档

15. 参考资料

[1] Oracle Exadata Database Machine System Documentation https://docs.oracle.com/en/engineered-systems/exadata-database-machine/