EM13c 基础教程Workshop(1)中,为大家介绍了使用EM13c进行PDB生命周期管理的内容,在今天的内容当中,将为大家介绍使用EM13c对数据库性能进行监控与管理。

在今天的实验当中,将包括如下几个部分:

  • Performance Hub介绍

  • 实时数据库操作监控

  • 在PDB当中优化SQL

  • SPA优化器统计信息

我们使用的环境还是上篇文章中介绍到的来自OCI的Marketplace的EM13c on Linux。EM13c 基础教程Workshop(2)_Java

实验2:使用EM13c进行数据库性能管理

实验2-1:Performance Hub

在本次实验中,针对sales.subnet.vcn.oraclevcn.com进行性能监测,首先来到Database列表页,然后点击这个数据库的超链接。

EM13c 基础教程Workshop(2)_Java_02

进入具体的CDB当中之后,将看到下图中显示的界面,我们可以点击Containers链接,查看当前CDB当中PDB的性能情况,如下图所示。通过观察,我们发现一个叫做PSALES的PDB占用了较多的系统资源。

EM13c 基础教程Workshop(2)_Java_03

我们找到比较繁忙的PDB之后,我们使用ASH Analytics对他进行分析,操作如下:

EM13c 基础教程Workshop(2)_Java_04

进入页面之后,可以拖动上方的时间框查询不同时间段的工作负载,在下方的图表当中,默认是使用wait class进行统计的,我们可以通过下拉菜单选择不同的统计维度。

EM13c 基础教程Workshop(2)_Java_05

刚才我们发现一个叫做PSALES的PDB比较繁忙,于是我们在下拉菜单中选择按照PDB维度进行统计,然后在右侧的图例当中,双击PSALES这个PDB,这会将这个PDB加入到过滤器当中,只显示该PDB相关的性能统计信息。我们可以点击页面上的SQL Monitoring链接,查看这段时间内,该PDB上运行的SQL情况,我们可以在显示出来的SQL当中,点击我们想要分析的SQL,点击它的SQL ID即可,这样就可以进入该SQL的详细分析页面。

EM13c 基础教程Workshop(2)_Java_06

根据SQL内容的不同,在Detail部分出现的链接也不一样,可能是Activity、Plan Statistics、Parallel、SQL Text等,在下面的动画当中,大家可以看到SQL Text,Activity和Statistics,我们可以点击右上角的Save Report将当前页面生成报告并保存起来。


EM13c 基础教程Workshop(2)_Java_07EM13c 基础教程Workshop(2)_Java_08

实验2-2:实时数据库操作监控

在EM当中,监控正在运行的SQL是一件非常简单的事情,依旧是在Performance Hub当中,点击SQL Monitoring就可以监控当前系统中运行的SQL。我们先执行一段事先写好的SQL,生成一个工作量,然后在SQL Monitoring当中就可以看到这条SQL语句的运行情况。在事先写好的SQL当中,设定了SQL ID为DBOP_DEMO,这样我们在SQL Monitoring就能很容易地识别到它。

EM13c 基础教程Workshop(2)_Java_09

通过点击SQL ID,可以查看Time & Wait以及I/O情况,我们通过点击Metrics,可以查看具体的CPU、内存及I/O吞吐和请求情况。通过点击右上角的Save Report,可以将页面保存为报告进行导出。


EM13c 基础教程Workshop(2)_Java_10

EM13c 基础教程Workshop(2)_Java_08实验2-3:优化PDB当中的SQL语句

我们将对sales.subnet.vcn.oraclevcn.com(这是一个容器数据库)当中性能较差的SQL进行优化。在Performance Hub页面的中部,可以看到本时段的Top SQL,我们可以通过滑动监控时间块,来选取特定时间段的Top SQL信息。在下面的例子当中,我们找到一段时间内的消耗资源最多的SQL,然后点击上方的SQL Tuning按钮,生成一个针对该SQL优化的Job。

EM13c 基础教程Workshop(2)_Java_12

这个Job将很快执行完成,我们可以点击建议器的执行结果,查看优化建议。

EM13c 基础教程Workshop(2)_Java_13

在下图中,我们看到,本次优化建议有两条,一条是创建index,另外一条是生成新的SQL Profile,我们选择要执行的建议,然后按implement按钮执行即可。在这个界面当中,显示了发现的问题,建议的处理方法,以及能带来的收益。可以通过点击后面的眼镜图标获取执行计划相关的讯息。

EM13c 基础教程Workshop(2)_Java_14

EM13c 基础教程Workshop(2)_Java_15

实验2-4:SPA优化器统计信息

在本实验当中,我们对Pluggable Databasesales.subnet.vcn.oraclevcn.com_HR这个PDB使用SPA。SPA主要用于精确数据库评估环境变化对于SQL语句性能的影响,比如统计值的变化对SQL语句的性能影响。

EM13c 基础教程Workshop(2)_Java_16

进入这个PDB的主页之后,我们按照下图所示选择SQL Performance Analyzer Quick Check Setup对SPA进行快速设定。

EM13c 基础教程Workshop(2)_Java_17

我们首先导入事先做好的SQL优化集,并且设定比较的度量值为Buffer Gets。

EM13c 基础教程Workshop(2)_Java_18

接下来,我们来到优化器统计值控制台进行统计信息收集。

EM13c 基础教程Workshop(2)_Java_19

点击Gather链接,进行统计值收集。

EM13c 基础教程Workshop(2)_Java_20

在设定收集统计信息的页面上,我们设定收集信息的范围为schema,并且将下方的使用SPA进行验证选中。

EM13c 基础教程Workshop(2)_Java_21

通过STAT为关键字将我们预设的两个schemas加入

EM13c 基础教程Workshop(2)_Java_22

EM13c 基础教程Workshop(2)_Java_23

接下来提交这个Job。

EM13c 基础教程Workshop(2)_Java_24

EM13c 基础教程Workshop(2)_Java_25

当Job执行完成时,我们可以点击Job的名称,查看详细情况。

EM13c 基础教程Workshop(2)_Java_26

通过观察,已经执行了四次SQL测试。前两个已经识别出带有计划变更的SQL语句。在过去的两次试验中,只执行了计划变更的声明。这将减少生产系统中使用的时间和资源量。点击眼镜图标查看第二份报告。

EM13c 基础教程Workshop(2)_Java_27

我们知道,当前的统计信息已经不是最新的,所以点击下图中红色按钮进行统计值发布。

EM13c 基础教程Workshop(2)_Java_28


EM13c 基础教程Workshop(2)_Java_29

EM13c 基础教程Workshop(2)_Java_30按照上面SPA的估计,新的统计值预计带来80%左右的性能提升。

今天的内容就到这里,我们将在下次讲座中为大家带来使用EM13c进行自动化数据库补丁,期待您的关注,谢谢。


相关链接:
EM13c 基础教程Workshop(1)


编辑:殷海英