如何从SGA或AWR获得SQL工作负载?

如果您知道系统何时达到瓶颈,则可以使用 AWR 从特定时隙检索 SQL 工作负载。如果当前运行的 SQL 足以表示应用程序中的高峰时间工作负载,则应直接从 SGA 中提取 SQL,以便进行 IM Advisor 和 IM Simulator recommendation。

从另一个角度看为什么要使用Oracle In-Memory数据库选项

很多人都在谈论为什么或者为什么不在他们的应用程序中使用 Oracle In-memory 数据库,他们中的大多数都过于关注数据库的大小,或者它是否是 OLAP 应用程序。中小型数据库似乎不适合使用 Oracle In-memory数据库选项。但是,如果您的 OLTP 数据库存在性能瓶颈,并且您正在寻找解决方案,我认为 Oracle In-memory数据库选项应该位于您的解决方案列表中,尤其是在计划升级硬件时。

在Oracle In-Memory 数据库中,SQL优化器优化计划空间越来愈大
计划空间是数据库 SQL optimizer 在输入 SQL 语句之前将考虑的潜在处理方法的大小。更大的计划空间大小意味着数据库 SQL optimizer 将考虑处理 SQL 语句的更多潜在方法。因此,您的 SQL 语句有更多运行更快的机会。使用 Oracle In-Memory 数据库新的 In-Memory数据访问方法,Oracle SQL 优化器将在 SQL 语句执行之前考虑更大的计划空间。由于乘数效应,新的 In-Memory 执行计划步骤可能会导致计划空间大小发生巨大扩展。例如, In-Memory 包含 5 个表的 SQL 语句,每个表的访问方法的”Table Access Inmemory Full”步骤,结果是 C(5,1)+C(5,2)+C(5,3)+C(5,4)C(5,5)=5=10=10=5=1=31。但不要忘记,此乘法器适用于原始计划空间树中的每个执行计划,这意味着新计划空间大小可能比原始计划空间大 31 倍。

OLTP 数据库如何从 In-Memory 数据库中获得优势?
OLTP 数据库是面向事务的应用程序,它要求每个事务都有快速的响应时间,但这并不意味着在工作时间没有用于联机报告或数据整合的复杂 SQL。如果此类慢速的 SQL 语句与其他联机事务同时运行,则整体性能将受到影响。如果硬件升级是其中一个选项,应考虑使用 Oracle In-Memory作为替代解决方案之一。
下面的示例向您展示了OLTP SQL语句如何从使用Oracle In-Memory数据库选项中获益。
下面是一个典型的 OLTP SQL,对所有表都进行了分析,原始执行计划显示了一个 Oracle 自适应计划,其中哈希联接或嵌套循环将在执行的初始阶段确定。此 SQL 的运行时间约为 1 分 35 秒。

L让我们使用强制提示将 EMPLOYEE 表放入Oracle In-Memory中,然后 Oracle 访问它时,采用”Table Access Inmemory Full”扫描,下面的基准测试显示,“Auto 1” SQL仅花费0.45秒就完成了,比原始执行计划快200多倍。该解决方案表明,对EMPLOYEE表引入新的“Table Access Inmemory Full”扫描,创建了比原来更好的执行计划。

对于OLTP的SQL,不需要将所有表放入 In-Memory
使用 OLTP 数据库时,我们不希望将所有表填充到In-Memory,从而给联机事务带来过多的开销。因此,对于OLTP 的 SQL 使用 In-Memory SQL 调优的目标不是选择最佳性能解决方案,而是具有较少In-Memory表的最经济高效的解决方案,且其性能改进仍是可以接受的。
如下面: “Auto 3” 解决方案把包含的所有表都被放入In-Memory,但改进仅比 “Auto 1” 高 0.01 秒,后者只需要将一个表放入In-Memory。因此,”Auto 1″显然是一个更可取的选择。

Oracle应该根据 In-Memory 的大小为 In-Memory 选项装载
实际上,Oracle In-Memory数据库不仅仅有利于OLAP用户,而是对于所有数据库用户(比如OLTP用户)来说,都是一个很好的SQL性能增强工具。鉴于Oracle In-Memory 数据库选项定价过高,限制了该新技术的快速适应,建议Oracle根据 In-Memory 大小来决定价格。换句话说,更小的尺寸和更低的价格肯定会帮助 Oracle
In-Memory数据库可广泛渗透到所有数据库用户,包括 OLTP 用户。

Author: Richard To (Richard.to@tosska.com), CTO of Tosska Technologies Limited

Tosska SQL Tuning Expert (TSE™) for Oracle® – 系统需求

在安装 Tosska SQL Tuning Expert (TSE™) for Oracle® 之前, 请确保您的系统满足以下最低硬件和软件要求:

CPU 1.8 GHz Processor
Memory 2 GB of RAM minimum, 4 GB of RAM recommended
Hard Disk Space 200 MB of disk space for 32-bit installation
400 MB of disk space for 64-bit installation
Operating System Microsoft Windows® 7 32-bit and 64-bit
Microsoft Windows® 10 32-bit and 64-bit
.NET Framework Microsoft .NET Framework 4.5
Database Client Oracle® 9i Client
Oracle® 10G Client
Oracle® 11G Client
Oracle® 12c Client
Oracle® client is not required when Basic Type is used for Connection Mode
Database Server Oracle® database 11G, 12C

能加快运行 SQL 调优过程吗?

可以,如果您对 SQL 语句的有预期的运行时间,可以在”Test Run All Options”选项窗口中的”terminate Criteria” Tab 设置 “User define time” 的值,将其用作终止每个 SQL 替代方案的终止测试运行的时间。

我应该测试运行每个 SQL 替代项多少次?

如果 SQL 的运行时短(少于 10 秒),则数据缓存从硬盘到内存和 SQL 分析时间的时间可能对总运行时很重要。因此,执行每个 SQL 替代项 2 次,并使用第二个运行时进行比较。

对于运行时间小于 1 秒的极短的 SQL 语句,建议多次运行所有 SQL 替代项,例如 3 次或更多,以便取得较平均运行时间进行比较。