您现在所在的位置:首页 - 权威技术
Oracle Database 12c In-Memory POC指南

 

为Oracle 12c 数据库的 In-Memory 功能做 PoC,其目的在于充分展现 In-Memory 的优势,同时又要尽量少地影响客户环境。今天和大家聊聊做 In-Memory PoC 时应遵循的一些核心步骤。

 

Oracle Database 12c In-Memory 工作方式:

为展现 In-Memory 的优势同时尽量少地影响客户环境,做 PoC 时应遵循如下基本步骤:

1)确定数据库 In-Memory的最佳工作负载

应用 In-Memory:分析型工作负载获益相对多,OLTP 型工作负载获益相对少。

 2)应用最新的In-Memory补丁包(Bundle Patch)

•最好的着手点是去查看 Note:1937782.1中的最新信息

•补丁24448103就是最新的20161018补丁包,记录在 Note: 20879108.8 中

3)内存分配

SGA_TARGET = SGA_TARGET(baseline) + INMEMORY_SIZE

不要忽略  Program Global Area (PGA)

4)数据库参数设置

•从init.ora参数取缺省值入手

•不设置任何下划线参数

•参数 INMEMORY_SIZE:为设基线而将其初置为 0,然后再根据所需的对象空间进行设置。 注意:正确设置此值可能需要一个迭代的过程

•参数 PARALLEL_DEGREE_POLICY 应该设置为 AUTO。对 RAC 环境说来,这是必需的。

 

5)测试开始前的准备工作

核实内存分配状况:

•In-MemoryAdvisor – 确定测试对象已经填入

•Compressionadvisor – 估算需要添加多少内存

 

查看测试对象的统计信息:

•最新的统计信息

•Histograms

•ColumnGroups

•ExtendedStatistics

 

查看 Constraint定义

查看分区状况

查看索引状况

性能史:

•确定AWR正在运行并可用于 troubleshooting。 AWR还可以用于确认初始化

参数和发现异常情况

 

6)测试方法

第一步:创建基线

•在不带IM列存储的情况下运行工作负载

•Set INMEMORY_SIZE = 0

•OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES = true

•在12c环境下捕获工作负载

•此步骤将允许在没有数据库 In-Memory的12c环境下捕获基线。 这是用来进行比较的值,以验证可以从数据库内存中预期的性能提升。 它还应该真切地反映客户应用当前的性能,如果不能反映客户应用当前的性能,我们就得停下来找原因了。 必须从可接受的基线开始,不然该测试系统就可能有其他问题。

 

第二步:将表放入 In-Memory

•分配IM列存储

•设置INMEMORY_SIZE参数并重新启动数据库

•将需要测试的表放到IM列存储中

•验证是否全部对象都已经放入IM列存储中

 

第三步:在启用了In-Memory  的情况下运行工作负载

•运行工作负载

 

第四步:SQL计划基线进化

•SQL计划基线进化

•这将允许优化器使用性能比当前基线执行计划更好的执行计划

•此乃具有关键意义的一步!

•允许使用最好的执行计划,防止性能下降

•使用dbms_spm包的进化(evolve)任务函数

 

第五步:最终工作负载执行

•再次运行工作负载

•将新旧已用时进行比较

•最终结果可以展示最佳的性能

 

最终结果:使用In-Memory,分析型查询性能提高 7 – 128 倍!

 

 

 

 

 

 

 

【文章来源:Oracle官网】

 

 

 

 

 

 

 

上一篇:Oracle数据库分片技术
下一篇:Oracle 12c多租户新特性
[返回] TOP