• zCloud使用技巧:如何使用性能下钻功能分析SQL性能问题


    作为金融机构业务系统的数据承载——数据库,在金融科技快速发展的过程中,随着互联网化、业务敏捷化等业务场景的转变,数据库性能也受到了极大的挑战。为了加快信息化建设的步伐,云和恩墨助力于某全国性专业财产保险公司实现IT信息化建设的发展,数据库zCloud云管理平台帮助客户加快实现自动化运维的进程。

    针对zCloud的一些特定功能,让我们跟随着云和恩墨驻场工程师小秦(化名)在实际操作中来详细了解这款精心雕琢的产品。

    zCloud云管平台可以通过监控来帮助我们快速的定位以及解决数据库问题。

    第一种是常规监控:通过监控数据库运行状态,包括错误告警、会话数、常规性能指标、空间使用率等。

    zCloud使用技巧:如何使用性能下钻功能分析SQL性能问题

    第二种是实时性能监控:通过收集全方位的性能指标,在出现性能问题时,通过等待事件、SQL语句、执行计划、以及相关联的对象,帮助数据库管理人员快速诊断复杂的性能问题,并提出性能优化建议。

    下面通过几个场景来演示zCloud在性能下钻方面的表现:

    场景一:如何分析TOP SQL

    在性能页面,选择一个时间段,可以清晰的看到这个时间段影响性能的TOP SQL,可以帮助我们快速的定位该SQL执行时间。如果关心更详细的信息,可以点击SQL ID下钻到SQL性能详情页面。

    zCloud使用技巧:如何使用性能下钻功能分析SQL性能问题

    在SQL性能详情页面,可以看到完整的SQL文本、性能数据、执行计划、性能分析、等待事件以及会话的基本信息等。在新版本中支持SQL文本格式化。

    如下图所示SQL文本页面展示执行该SQL的完整SQL语句。

    zCloud使用技巧:如何使用性能下钻功能分析SQL性能问题

    在性能数据页面,可以还可以了解该SQL运行的整体统计,内容包括今天的执行次数、最近活跃时间、执行时间等。

    zCloud使用技巧:如何使用性能下钻功能分析SQL性能问题

    在执行计划页面可以看到该SQL的执行计划,可以根据执行计划来对SQL进行优化,并且在该页面可以看到该SQL所涉及的对象信息。

    zCloud使用技巧:如何使用性能下钻功能分析SQL性能问题

    性能分析页面,通过智能分析引擎,zCloud可以对SQL提出创建索引的建议,我们可以根据实际环境来对该SQL进行判断,是否可以根据该建议来进行优化。

    zCloud使用技巧:如何使用性能下钻功能分析SQL性能问题

    场景二:如何分析事务锁

    事务锁分析页面展示锁的信息,后面会话阻塞分析是树形结构,此处锁信息是横向展示锁的信息。当数据库会话较多时可以帮助我们准确的定位哪个会话产生了锁。

    zCloud使用技巧:如何使用性能下钻功能分析SQL性能问题

    场景三:如何分析临时表空间异常增长

    在业务同步一些数据使用insert等操作,可能会导致一些表的统计信息不准确,在表连接时产生笛卡尔积导致临时表空间扩展,如下图所示,这时临时表空间的使用量并不高,但是,使用量在23:13-23:43之间从3GB增加到96GB,通过temp表空间使用趋势,我们可以定位到23:13-23:43时间段该临时表空间异常扩展;接下来我们就可以通过实时性能来查找该时间段的问题SQL。

    zCloud使用技巧:如何使用性能下钻功能分析SQL性能问题

    场景四:如何分析特定时间段的性能问题

    在实时性能页面我们可以查找最近48小时内的性能数据,接下来在实时活动会话中选取我们所要查找的时间段。

    zCloud使用技巧:如何使用性能下钻功能分析SQL性能问题

    如下图所示,选定时间框后,下边一栏会展现出该时间段的TOP SQL和TOP SESSION,我们可以按照Activity%的大小来查看SQL(TOP SQL处的Activity%为不同的wait class在ASH中出现的次数与ASH中总的次数的比值),点击SQL_ID可以下钻到SQL性能详情页面。

    zCloud使用技巧:如何使用性能下钻功能分析SQL性能问题

    如下图所示,在SQL性能详情页面的等待事件中发现了direct path write temp等待事件。

    zCloud使用技巧:如何使用性能下钻功能分析SQL性能问题

    同时在执行计划页面发现merge join cartesian,并且发现该表的统计信息中行数为0。

    zCloud使用技巧:如何使用性能下钻功能分析SQL性能问题

    zCloud使用技巧:如何使用性能下钻功能分析SQL性能问题

    最终和业务沟通后,该表所在的存储过程中每次都先truncate table,之后进行insert,导致统计信息中记录该表行数为0,产生笛卡尔积连接。

    面对各种突发状况,云和恩墨zCloud数据库云管平台不断吸取经验,进行全面的优化和改进,汇集各行业更多客户对安全管理、持续数据优化管理的典型需求,不断增强平台对内、对外的服务质量管理。在未来,云和恩墨还将引领国产的数据库云管平台走向一个新的高度。

  • 相关阅读:
    Django(一)
    web 框架
    图片
    day16
    day 15
    day14 HTML CSS
    day12
    day11
    python IO多路复用,初识多线程
    python socket
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13311791.html
Copyright © 2020-2023  润新知