在EM13c 基础教程Workshop(1)中,为大家介绍了使用EM13c进行PDB生命周期管理的内容,在今天的内容当中,将为大家介绍使用EM13c对数据库性能进行监控与管理。
在今天的实验当中,将包括如下几个部分:
Performance Hub介绍
实时数据库操作监控
在PDB当中优化SQL
SPA优化器统计信息
我们使用的环境还是上篇文章中介绍到的来自OCI的Marketplace的EM13c on Linux。
实验2:使用EM13c进行数据库性能管理
实验2-1:Performance Hub
在本次实验中,针对sales.subnet.vcn.oraclevcn.com进行性能监测,首先来到Database列表页,然后点击这个数据库的超链接。
进入具体的CDB当中之后,将看到下图中显示的界面,我们可以点击Containers链接,查看当前CDB当中PDB的性能情况,如下图所示。通过观察,我们发现一个叫做PSALES的PDB占用了较多的系统资源。
我们找到比较繁忙的PDB之后,我们使用ASH Analytics对他进行分析,操作如下:
进入页面之后,可以拖动上方的时间框查询不同时间段的工作负载,在下方的图表当中,默认是使用wait class进行统计的,我们可以通过下拉菜单选择不同的统计维度。
刚才我们发现一个叫做PSALES的PDB比较繁忙,于是我们在下拉菜单中选择按照PDB维度进行统计,然后在右侧的图例当中,双击PSALES这个PDB,这会将这个PDB加入到过滤器当中,只显示该PDB相关的性能统计信息。我们可以点击页面上的SQL
Monitoring链接,查看这段时间内,该PDB上运行的SQL情况,我们可以在显示出来的SQL当中,点击我们想要分析的SQL,点击它的SQL
ID即可,这样就可以进入该SQL的详细分析页面。
根据SQL内容的不同,在Detail部分出现的链接也不一样,可能是Activity、Plan Statistics、Parallel、SQL Text等,在下面的动画当中,大家可以看到SQL Text,Activity和Statistics,我们可以点击右上角的Save Report将当前页面生成报告并保存起来。
实验2-2:实时数据库操作监控
在EM当中,监控正在运行的SQL是一件非常简单的事情,依旧是在Performance Hub当中,点击SQL Monitoring就可以监控当前系统中运行的SQL。我们先执行一段事先写好的SQL,生成一个工作量,然后在SQL Monitoring当中就可以看到这条SQL语句的运行情况。在事先写好的SQL当中,设定了SQL ID为DBOP_DEMO,这样我们在SQL Monitoring就能很容易地识别到它。
通过点击SQL ID,可以查看Time & Wait以及I/O情况,我们通过点击Metrics,可以查看具体的CPU、内存及I/O吞吐和请求情况。通过点击右上角的Save Report,可以将页面保存为报告进行导出。
实验2-3:优化PDB当中的SQL语句
我们将对sales.subnet.vcn.oraclevcn.com(这是一个容器数据库)当中性能较差的SQL进行优化。在Performance Hub页面的中部,可以看到本时段的Top SQL,我们可以通过滑动监控时间块,来选取特定时间段的Top SQL信息。在下面的例子当中,我们找到一段时间内的消耗资源最多的SQL,然后点击上方的SQL Tuning按钮,生成一个针对该SQL优化的Job。
这个Job将很快执行完成,我们可以点击建议器的执行结果,查看优化建议。
在下图中,我们看到,本次优化建议有两条,一条是创建index,另外一条是生成新的SQL Profile,我们选择要执行的建议,然后按implement按钮执行即可。在这个界面当中,显示了发现的问题,建议的处理方法,以及能带来的收益。可以通过点击后面的眼镜图标获取执行计划相关的讯息。
实验2-4:SPA优化器统计信息
在本实验当中,我们对Pluggable Databasesales.subnet.vcn.oraclevcn.com_HR这个PDB使用SPA。SPA主要用于精确数据库评估环境变化对于SQL语句性能的影响,比如统计值的变化对SQL语句的性能影响。
进入这个PDB的主页之后,我们按照下图所示选择SQL Performance Analyzer Quick Check Setup对SPA进行快速设定。
我们首先导入事先做好的SQL优化集,并且设定比较的度量值为Buffer Gets。
接下来,我们来到优化器统计值控制台进行统计信息收集。
点击Gather链接,进行统计值收集。
在设定收集统计信息的页面上,我们设定收集信息的范围为schema,并且将下方的使用SPA进行验证选中。
通过STAT为关键字将我们预设的两个schemas加入
接下来提交这个Job。
当Job执行完成时,我们可以点击Job的名称,查看详细情况。
通过观察,已经执行了四次SQL测试。前两个已经识别出带有计划变更的SQL语句。在过去的两次试验中,只执行了计划变更的声明。这将减少生产系统中使用的时间和资源量。点击眼镜图标查看第二份报告。
我们知道,当前的统计信息已经不是最新的,所以点击下图中红色按钮进行统计值发布。
按照上面SPA的估计,新的统计值预计带来80%左右的性能提升。
今天的内容就到这里,我们将在下次讲座中为大家带来使用EM13c进行自动化数据库补丁,期待您的关注,谢谢。
编辑:殷海英