热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

GaussDBTWSR简介

GaussDB有类似oracleAWR报告的WSR报告。帮助D


GaussDB有类似Oracle AWR报告的WSR(Workload Statistics Report)报告。以帮助DBA进行DB性能分析定位。

集群环境当前仅支持在DN主节点上生成分析报告,不支持CN节点。

    [omm@Gauss1 ~]$ zsql sys/'Changeme_123'@127.0.0.1:40000 -q
    connected.


    SQL> wsr
    The syntax of generating a WSR report is as follows:


    Format: WSR snap_id1 snap_id2 "FILENAME"
    snap_id1 and snap_id2 indicate the IDs of the start and end snapshots, respectively. FILENAME is optional.
    You can create a snapshot using the SYS.WSR$CREATE_SNAPSHOT stored procedure and obtain snapshot IDs from the adm_hist_snapshot system view.
    You can drop snapshots using the WSR$DROP_SNAPSHOT_RANGE stored procedure and obtain the latest 20 snapshot IDs by running the WSR list command.
    Example1: WSR 10 20
    Use snapshot 10 and snapshot 20 to generate a report, with a default report name.
    Example2: WSR 10 20 "e:\wsr.html"
    Use snapshot 10 and snapshot 20 to generate a report, with a specified report name.
    Example3: WSR list
    Obtain information about the latest 20 snapshots.
    Example4: CALL WSR$CREATE_SNAPSHOT;
    Create a snapshot.
    Example5: CALL WSR$DROP_SNAPSHOT_RANGE(10, 20);
    Drop snapshots from snapshot 10 to snapshot 20.
    Note: For WSR, the values of the SQL_STAT and TIMED_STATS system parameters are true.


    SQL>

    查看可用快照点:

      SQL> wsr list;
      Listing the lastest Completed Snapshots
      Snap Id Snap Started DB_startup_time
      --------------- ------------------- ------------------
      26 2019-12-17 04:30:21 2019-12-17 03:30:19
      25 2019-12-17 04:00:21 2019-12-17 03:30:19
      24 2019-12-17 03:30:21 2019-12-17 03:30:19
      23 2019-12-17 01:57:30 2019-12-17 00:27:29
      22 2019-12-17 01:27:30 2019-12-17 00:27:29
      21 2019-12-17 00:57:30 2019-12-17 00:27:29
      20 2019-12-17 00:27:30 2019-12-17 00:27:29
      19 2019-12-16 23:51:43 2019-12-16 22:04:44
      18 2019-12-16 23:21:43 2019-12-16 22:04:44
      17 2019-12-16 22:51:43 2019-12-16 21:49:30
      16 2019-12-16 22:21:43 2019-12-16 21:49:30
      15 2019-12-16 21:51:43 2019-12-16 21:49:30
      14 2019-12-16 03:47:00 2019-12-15 22:46:59
      13 2019-12-16 03:17:00 2019-12-15 22:46:59
      12 2019-12-16 02:47:00 2019-12-15 22:46:59
      11 2019-12-16 02:17:00 2019-12-15 22:46:59
      10 2019-12-16 01:47:00 2019-12-15 22:46:59
      9 2019-12-16 01:17:00 2019-12-15 22:46:59
      8 2019-12-16 00:47:00 2019-12-15 22:46:59
      7 2019-12-16 00:17:00 2019-12-15 22:46:59
      SQL>

      手动收集快照点

        SQL> CALL WSR$CREATE_SNAPSHOT;
        PL/SQL procedure successfully completed.
        SQL>

        查看WSR配置信息

          SQL> select snap_interval,retention,topnsql,session_status,session_interval,log_days from adm_hist_wr_control;


          SNAP_INTERVAL RETENTION TOPNSQL SESSION_STATUS SESSION_INTERVAL LOG_DAYS
          ------------------------ ------------------------ ------------ -------------- ---------------- ------------
          +00000 00:30:00.0 +00002 00:00:00.0 200 Y 30 30


          1 rows fetched.


          SQL>

            SNAP_INTERVAL : 自动生成快照的间隔。取值范围【5,1440】 单位:分钟 默认值:30分 钟 参数为整数 call WSR $MODIFY_SETTING(I_ IN_INTERVAL_MINUT ES => 30);
            RETENTION         :  快照保留的天数。        取值范围【1,3000】 单位:天 默认值:2天 参数为整数        call WSR $MODIFY_SETTING(I_ IN_RETENTION_DAYS => 30);
            TOPNSQL           :  报告中Top SQL个 数。    取值范围【1,1000】 单位:个 默认值:200个 参数为整数     call WSR $MODIFY_SETTING(I_ IN_TOPSQL=> 100);
            SESSION_STATUS    :  是否开启准实时收 集任务。取值范围  Y:开启。N:不开启。默认值:Y         call WSR $MODIFY_SETTING(S TR_IN_SESSION_STAT US=> 'Y');
            SESSION_INTERVA   :  准实时收集任务的间隔。  取值范围【1,1000】 单位:秒 默认值:30秒 参数为整数   call WSR $MODIFY_SETTING(I_ IN_SESSION_INTERVA L => 30);
            LOG_DAYS          :  日志的保留天数。        取值范围【1,1000】 单位:天 默认值:30天 参数为整数   call WSR $MODIFY_SETTING(I_ IN_LOG_DAYS => 30);



            常用操作:

              SQL> wsr list;
              Listing the lastest Completed Snapshots


              Snap Id Snap Started DB_startup_time
              --------------- ------------------- ------------------
              27 2019-12-17 04:37:31 2019-12-17 03:30:19
              26 2019-12-17 04:30:21 2019-12-17 03:30:19
              25 2019-12-17 04:00:21 2019-12-17 03:30:19
              24 2019-12-17 03:30:21 2019-12-17 03:30:19
              23 2019-12-17 01:57:30 2019-12-17 00:27:29
              22 2019-12-17 01:27:30 2019-12-17 00:27:29
              21 2019-12-17 00:57:30 2019-12-17 00:27:29
              20 2019-12-17 00:27:30 2019-12-17 00:27:29
              19 2019-12-16 23:51:43 2019-12-16 22:04:44
              18 2019-12-16 23:21:43 2019-12-16 22:04:44
              17 2019-12-16 22:51:43 2019-12-16 21:49:30
              16 2019-12-16 22:21:43 2019-12-16 21:49:30
              15 2019-12-16 21:51:43 2019-12-16 21:49:30
              14 2019-12-16 03:47:00 2019-12-15 22:46:59
              13 2019-12-16 03:17:00 2019-12-15 22:46:59
              12 2019-12-16 02:47:00 2019-12-15 22:46:59
              11 2019-12-16 02:17:00 2019-12-15 22:46:59
              10 2019-12-16 01:47:00 2019-12-15 22:46:59
              9 2019-12-16 01:17:00 2019-12-15 22:46:59
              8 2019-12-16 00:47:00 2019-12-15 22:46:59


              SQL> call wsr$drop_snapshot_range(8,10); --删除指定范围snapshot
              PL/SQL procedure successfully completed.


              SQL> wsr list;
              Listing the lastest Completed Snapshots


              Snap Id Snap Started DB_startup_time
              --------------- ------------------- ------------------
              27 2019-12-17 04:37:31 2019-12-17 03:30:19
              26 2019-12-17 04:30:21 2019-12-17 03:30:19
              25 2019-12-17 04:00:21 2019-12-17 03:30:19
              24 2019-12-17 03:30:21 2019-12-17 03:30:19
              23 2019-12-17 01:57:30 2019-12-17 00:27:29
              22 2019-12-17 01:27:30 2019-12-17 00:27:29
              21 2019-12-17 00:57:30 2019-12-17 00:27:29
              20 2019-12-17 00:27:30 2019-12-17 00:27:29
              19 2019-12-16 23:51:43 2019-12-16 22:04:44
              18 2019-12-16 23:21:43 2019-12-16 22:04:44
              17 2019-12-16 22:51:43 2019-12-16 21:49:30
              16 2019-12-16 22:21:43 2019-12-16 21:49:30
              15 2019-12-16 21:51:43 2019-12-16 21:49:30
              14 2019-12-16 03:47:00 2019-12-15 22:46:59
              13 2019-12-16 03:17:00 2019-12-15 22:46:59
              12 2019-12-16 02:47:00 2019-12-15 22:46:59
              11 2019-12-16 02:17:00 2019-12-15 22:46:59
              7 2019-12-16 00:17:00 2019-12-15 22:46:59
              6 2019-12-15 23:47:00 2019-12-15 22:46:59
              5 2019-12-15 23:17:00 2019-12-15 22:46:59
              SQL> wsr 10 20 --收集指定范围snapshot报告
              GS-00601, [1:4]Sql syntax error: start_snap_id doesn't exist!
              WSR Report Build failed.


              SQL> wsr 11 20
              GS-00516, Err occur when generate WSR report, msg: Database restarts in the middle of two snapshots.
              WSR Report Build failed.


              SQL> wsr 24 26 ----收集指定范围snapshot报告


              WSR report file name : wsrrpt_24_26.html
              WSR report Generation Success.


              SQL> wsr 24 26 "/tmp/24-26.html" ----收集指定范围snapshot报告,并指定报告路径及名称


              WSR report file name : tmp/24-26.html
              WSR report Generation Success.


              SQL>


              WSR 相关视图 

                ADM_HIST_SNAPSHOT :历史快照信息
                ADM_HIST_WR_CONTROL :WSR相关配置
                ADM_HIST_SYSSTAT :DV_SYS_STATS快照信息
                ADM_HIST_SYSTEM :DV_SYSTEM快照信息
                ADM_HIST_SYSTEM_EVENT :DV_SYS_EVENTS快照信息
                ADM_HIST_SQLAREA :DV_SQLS快照信息
                ADM_HIST_PARAMETER :DV_PARAMETERS快照信息
                ADM_HIST_WAITSTAT :DV_WAIT_STATS快照信息
                ADM_HIST_LATCH :DV_LATCHS快照信息
                ADM_HIST_LIBRARYCACHE :DV_LIBRARY_CACHE快照信息
                ADM_HIST_SEGMENT :DV_SEGMENT_STATS快照信息
                ADM_HIST_DBASEGMENTS :ADM_SEGMENTS快照信息
                ADM_JOBS                   :快照相关job信息 


                扩展:gs_wsr 

                    数据库集群部署成功后,GaussDB提供了gs_wsr工具将DN上的WSR报告统一生成并打包返回,极大提升了集群环境快速收集报告的效率。

                  [omm@Gauss1 ~]$ gs_wsr -t listsnapshot    --查看快照点
                  SNAP_ID DBID INSTANCE_ID STARTUP_TIME SNAP_TIME FLUSH_ELAPSED SESSIONS CURSORS
                  ------------ ------------ ------------ -------------------------------- -------------------------------- ------------------------ ------------ ------------
                  28 1199615300 0 2019-12-17 03:30:19.241 2019-12-17 05:00:21.217 -00000 00:00:00.2 71 2
                  27 1199615300 0 2019-12-17 03:30:19.241 2019-12-17 04:37:31.699 -00000 00:00:00.7 69 1
                  26 1199615300 0 2019-12-17 03:30:19.241 2019-12-17 04:30:21.562 -00000 00:00:00.6 70 2
                  25 1199615300 0 2019-12-17 03:30:19.241 2019-12-17 04:00:21.958 +00000 00:00:00.0 70 2
                  24 1199615300 0 2019-12-17 03:30:19.241 2019-12-17 03:30:21.420 -00000 00:00:00.4 49 1
                  23 1199615300 0 2019-12-17 00:27:29.283 2019-12-17 01:57:30.247 -00000 00:00:00.2 79 1
                  22 1199615300 0 2019-12-17 00:27:29.283 2019-12-17 01:27:30.584 -00000 00:00:00.6 70 2
                  21 1199615300 0 2019-12-17 00:27:29.283 2019-12-17 00:57:30.947 +00000 00:00:00.1 59 1
                  20 1199615300 0 2019-12-17 00:27:29.283 2019-12-17 00:27:30.306 -00000 00:00:00.3 50 2
                  9 rows fetched.
                  [omm@Gauss1 ~]$ gs_wsr -t report --begin-time="20191217 03:30:21" --end-time="20191217 04:30:21" --收集指定时间段报告
                  Successful completion of report collection, results are stored in home/omm/20191217-03-30-21_20191217-04-30-21.tar.gz.
                  [omm@Gauss1 tmp]$ tar -zxvf home/omm/20191217-03-30-21_20191217-04-30-21.tar.gz
                  24_25_DB4_7.html
                  24_25_DB3_5.html
                  24_25_DB2_3.html
                  24_25_DB1_1.html
                  [omm@Gauss1 ~]$

                      GaussDB 不仅支持上边的单命令一键收集,还支持部署定时任务,定时自动收集:

                    [omm@Gauss1 ~]$ gs_wsr -t createtask --time=60 --创建任务,每60min执行一次
                    ========================================
                    Begin to create wsr cron task.
                    Create wsr cron task time interval is 60 minutes.
                    Successfully create wsr cron task.
                    ========================================
                    [omm@Gauss1 ~]$ gs_wsr -t updatetask --time=120 --更新任务
                    [GAUSS-50004] : The parameter '--time' value is incorrect. Value scope is 15 or 30 or 60.
                    [omm@Gauss1 ~]$ gs_wsr -t updatetask --time=30
                    ========================================
                    Begin to update wsr cron task.
                    Update wsr task time interval to 30 minutes.
                    Successfully update wsr cron task.
                    ========================================
                    [omm@Gauss1 ~]$ gs_wsr -t taskstatus --查看任务状态
                    ========================================
                    Check wsr cron task status.
                    The wsr cron task is running.
                    Task time interval: [ 30 minutes ].
                    Check wsr cron task status Finished.
                    ========================================
                    [omm@Gauss1 ~]$ gs_wsr -t deletetask --删除任务
                    ========================================
                    Begin to delete wsr cron task.
                    Successfully delete wsr cron task.
                    ========================================
                    [omm@Gauss1 ~]$

                     

                    gs_wsr常用命令:

                      创建WSR的定时任务
                      gs_wsr -t createtask --time=MINUTES


                      删除WSR的定时任务
                      gs_wsr -t deletetask


                      更新WSR定时任务时间
                      gs_wsr -t updatetask --time=MINUTES


                      查询定时任务状态
                      gs_wsr -t taskstatus


                      生成WSR报告
                      gs_wsr -t report --begin-time="BEGINTIME" --end-time="ENDTIME" [--outDir="dir"]


                      查看快照


                      gs_wsr -t listsnapshot [-I INSTANCENAME] [--date="DATE"]
                      显示帮助信息
                      gs_wsr -? | --help


                      显示版本号信息
                      gs_wsr -V | --version


                      一睹为快:

                      WSR报告样例 

                      https://pan.baidu.com/s/1CHBPMELRMBhRCLHYh574Mw



                      关注国产,关注未来 我是Kevin YAN!


                      参考:

                      1. 《Gauss100官方文档》

                      2. https://support.huawei.com


                      关注我,可查阅更多文章呦!




                      推荐阅读
                      • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
                        本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
                      • 如何自行分析定位SAP BSP错误
                        The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
                      • VScode格式化文档换行或不换行的设置方法
                        本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
                      • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
                      • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
                        本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
                      • android listview OnItemClickListener失效原因
                        最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
                      • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
                      • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
                      • Linux磁盘的分区、格式化的观察和操作步骤
                        本文介绍了如何观察Linux磁盘的分区状态,使用lsblk命令列出系统上的所有磁盘列表,并解释了列表中各个字段的含义。同时,还介绍了使用parted命令列出磁盘的分区表类型和分区信息的方法。在进行磁盘分区操作时,根据分区表类型选择使用fdisk或gdisk命令,并提供了具体的分区步骤。通过本文,读者可以了解到Linux磁盘分区和格式化的基本知识和操作步骤。 ... [详细]
                      • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
                      • 高质量SQL书写的30条建议
                        本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
                      • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
                      • [大整数乘法] java代码实现
                        本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
                      • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
                      • IOS开发之短信发送与拨打电话的方法详解
                        本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
                      author-avatar
                      疾风灬浪
                      这个家伙很懒,什么也没留下!
                      PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
                      Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有