13_11g新特性_Oracle 数据库云服务器模拟器
- 格式:docx
- 大小:588.93 KB
- 文档页数:6
Oracle Database 11g:
面向 DBA 和开发人员的重要特性
Oracle 数据库云服务器模拟器
预测您的语句将在使用任何 Oracle Database 11g 第 2 版 EE 数据库的
Oracle 数据库云服务器中的行为(通过 SQL Performance Analyzer)。
到现在为止,您可能已经听说过 Oracle 数据库云服务器,一个用于托管数据库
应用程序的服务器、存储设备、联网设备和软件的完全集成式系统。
简而言之,它是节点间通信,更具体地说,是减少流量,这是 Oracle 数据库云
服务器的“秘诀”— 客户报告,性能提升高达 50 倍。不问任何其他问题即可
实现额外提升,尽管这种时髦的方法很有吸引力,但您应首先考虑将对特定数据
库应用程序产生的影响。
理想的方法是,如果您已具有数据库云服务器,那么捕获生产中的所有活动,在
数据库云服务器系统中重放这些活动,然后直接观察影响 — 这是很好的解决方
案。对于不具备数据库云服务器的客户,Oracle Database 11g 第 2 版中还有
另一种选择:您可以使用 SQL Performance Analyzer 的特殊数据库云服务器模
拟工具来模拟数据库云服务器上任何 Oracle Database 11g 第 2 版 EE 数据库
中 SQL 语句的行为。
为了进行演示,我们来看一下数据库云服务器对此查询性能的影响。首先发出此
查询,以便其进入共享池。此 SQL 语句使用 Oracle Database 11g 第 2 版软
件 Example Schemas(在主数据软件之外单独提供)中包含的 SH 模式。请注意,
精确查询并不重要;对于这个演示,可导致相当多 I/O 的任何查询均可行。
select prod_name, cust_state_province, channel_desc,
sum(amount_sold)
from sales s, customers c, products p, channels c
where s.cust_id = c.cust_id
and s.prod_id = p.prod_id
and s.channel_id = c.channel_id
and c.cust_year_of_birth between 1960 and 1970
group by prod_name, cust_state_province, channel_desc
要模拟数据库云服务器,首先需要创建一个 SQL 调优集 (STS)。可以使用多种
方法来执行此操作,但使用 Oracle Enterprise Manager Database Control 是
最简单、最直观的方法。让我向您演示一下操作方法:在 Database 主页面中,
选择 Performance 选项卡,向下滚动至页面底部,然后找到名为 Additional
Monitoring Links 的超链接组。在此处单击 SQL Tuning Sets。这将出现一个
类似下面的屏幕(为了减少占用的空间,对屏幕进行了剪切,仅显示相关部分):
接下来,需要创建一个 STS。单击 Create,这将出现一个类似下面的屏幕。在
这里,您能够选择将 SQL 语句填充到此 STS 的方式。
选择合适的加载方法。在这个示例中,您将使用一次性加载选项,我们选择的
Data Source 是 Cursor Cache,这是共享池中用于缓存 SQL 语句的缓存。单击
Next,这将出现一个类似下面的屏幕。可以添加不同筛选条件以筛掉不想要的
SQL 语句。
设置完所有筛选条件后,单击 Finish,这将创建一个计划任务,执行该任务后,
将使用名称 ExaSimul1 创建一个 SQL 调优集。
之后,您可以调用 Real Application Testing 的 SQL Performance Analyzer
(SPA) 来执行模拟。在 Database 主页面中,选择 Software and Support 选
项卡,然后在组标题 Real Application Testing 下单击 SQL Performance
Analyzer。以下是 SPA 主页面的屏幕截图:
注意新链接:Exadata Simulation。单击该超链接。您将看到一个类似下面的屏
幕。提供任务名称 — Exadata Simulation Task 1。在 SQL Tuning Set 域中,
单击手电筒图标并选择您之前创建的 STS — EXASIMUL1。
在该屏幕中,您还能够在 Per SQL Time Limit 域中为 SQL 语句的执行设置时
间限制。设置此参数可确保终止花费时间超过此限制的任何 SQL,收集了所有必
需的性能指标,然后 SPA 会移至该 SQL 调优集中下一个 SQL 语句的执行分析。
在这个示例中,我们将其保留为 Unlimited。
单击 Submit。这将创建一个计划任务,并向您显示如下所示的 SQL Performance
Analyzer 屏幕。该页面将继续刷新,Status 列反映我们提交的 SQL
Performance Analyzer 任务的进度。
当 Status 列更改为“Completed”时,单击超链接(也就是任务的名称)将向
您显示有关任务执行的详细信息,如下所示:
单击标题“Comparison Report”下面的眼镜图标。这就是您感兴趣的报告。
此 报告显示了在 STS 中运行 SQL 语句时最有可能看到的性能差异(此示例中
只有几条,但实际情况中,您将可能从应用程序中选择大量 SQL)。比较方法是
互连 I/O 字节数。在上面的示例中,我们看到其中一条 SQL 导致了约 25MB 的
互连流量,但在数据库云服务器中可能仅导致 2MB 的流量 - 降至原来的 1/12。
(您的结果将有所不同;这只是一个说明。)
由于数据库云服务器软件直接在存储单元级别进行的筛选,因此 RAC 节点处理
的信息量会显著降低,从而减少了互连流量。此外,由于 RAC 节点要处理的缓
冲区减少了,它们占用 CPU 也会减少,从而减少了所用时间。
当 然,所有这些都取决于数据库云服务器存储单元级别的筛选量。这正是您将
在模拟中搞清楚的内容;您将看到执行时间得以改善的 SQL(以及执行时间延长
的 SQL,如果有的话)。报告中将明确显示对每条 SQL 语句的效果(单独的和
累计的),如果您选择实施数据库云服务器,这有助于您了解潜在影响。
如果您之前运行过 SPA,可能已经注意到,比较报告显示了计划更改 - 有多少
SQL 更改了计划之后变得更好或更糟,有多少 SQL 保持未变。在数据库云服务
器中模拟,计划不会更改。(记住,它毕竟是一个 Oracle 11g 第 2 版数据库。)
因此,在计划更改方面的比较无关紧要。
既 然您已经领略到数据库云服务器模拟的强大之处,您可能想知道:如果您很
幸运地已在运行数据库云服务器硬件,是否可以在 SPA 中使用这种模拟方法?
不,完全不行。如果您已具有数据库云服务器,那么您应在 SPA 中使用正规途
径(即参数更改或导向工作流)测试 SQL 中的设置或更改,然后查看其影响。