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. 最佳实践
- 大表用 HCC:节省空间
- Smart Scan 大查询:性能
- 列投影:减少传输
- 并行:充分利用
- IORM 隔离:业务
- IM + Exadata:极致分析
- 定期监控:Cell 健康
- 升级及时:补丁
- Smart Scan 验证:生效
- 分区 + HCC:归档
15. 参考资料
[1] Oracle Exadata Database Machine System Documentation https://docs.oracle.com/en/engineered-systems/exadata-database-machine/