【09】SAP ABAP性能优化 - 调优工具 SM50 | ST05 | SAT | SCI | STAD (STATS) | ST12

2024-03-19 04:59

本文主要是介绍【09】SAP ABAP性能优化 - 调优工具 SM50 | ST05 | SAT | SCI | STAD (STATS) | ST12,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SAP系统提供了许多性能调优的工具,在本篇博客中,我将介绍下最常用的几种工具也即SM50, ST05, SAT, SCI, STAD (STATS) 和ST12. 

1.工具概况

  • SM50 / SM66  - 工作进程监视器

    • 通过这两个T-code, 可以查看当前SAP AS实例上面的工作进程,当某一工作进程长时间处于running的状态时,可以直接跳转到相应的程序位置进行查看和分析。
  • ST05 - 性能追踪
    • ST05是最常见的一个performance trance的工具,可以进行SQL、Buffer、Enqueue、RFC 、HTTP等多种类型的追踪, 通常我们使用ST05踪程序运行过程中的DB访问情况。
  • SAT - 代码分析工具
    • SAT是SE30的新版本,是非常好用的一种ABAP性能分析工具,可以按照不同的类型统计程序的运行状况,这也是我本人较为喜欢使用的一个T-code。
  • SCI - 代码检查器
    • SCI是SAP Code Inspector的缩写,主要用于静态检查,包括性能、安全性、语法等等,Code Inspector默认集成在ATC(ABAP Test Cockpit)和SE09(传输释放)等过程中。用户可以通过定义自己的variant来实现自己特定的检查规则。
  • STAD (STATS) - 性能监控器
    • 这个事物代码是用于系统性能监控(Performance Monior),用于查看系统在特定时间段的性能情况,资源使用和消耗情况。老的事物代码是STAD,新版的事物代码是STATS。
  • ST12 - 单个事物代码分析
    • ST12 (Single transaction analysis)更像一个wrapper的事物代码,其核心是对ST05, STAD, SAT等性能分析工具的集成,其使用方式和ST05类似,也即要有一个activate和deactivate的步骤。ST12也是常用的性能分析工具。

2.工具的使用方法

2.1 SM50 / SM66 工作进程监视器

为了避免其他无关进程的干扰,通常在使用SM50 / SM66时,我们首先会过滤出与自己相关的process - 

然后,在SM50中,找到并选中相关的目标程序的process,通过Administration >> Program >> Debugging即可跳转到相关的程序位置。

通过SM50中的debug跳转找到的位置,说明SAP AS 上的进程在此位置耗费了较长的处理时间,因而通常这个位置就是需要优化的程序位置。

2.2 ST05 性能追踪

使用ST05通常有三个步骤,即 Activate Trace >> Deactivate Trace >> Display Trace .

因此在使用ST05打开Trace后,要避免无关的操作,仅执行相关的目标程序。这样在Deactivate Trace后,看到的Trace结果更加的干净、没有干扰。

在Display trace的overview页面,其显示了程序的整个执行过程,我们可以通过查看Structure-Identical Statement来查看SQL的具体执行情况,在此可以找到最耗时的执行语句,同时双击可以进入相关的源代码位置。

2.3 SAT 代码分析工具

在SAT的主界面,输入要执行的程序,然后运行 - 

运行完毕后,SAT返回相应的分析结果。在分析页面,我们可以看到不同部分执行时间所占的百分比,进而可以进一步分析具体的原因。

在SAT的 Hit List 页面可以直接看到,各部分耗费时间的排行。通常情况下,在程序开发完毕后,都要使用SAT来分析下程序各部分的执行情况,对于耗时较高的位置,进行性能优化。

2.4 SCI - 代码检查器

SCI已经集成在程序检查里:

这里会执行系统default的静态检查规则,并给出结果:

如果需要自定义检查规则,可以直接使用SCI事物代码,定义自己的Variant, Object Set和Inspection: 

 选择使用哪些检查规则:

2.5 STAD (STATS) - 性能监控器

STAD是SAP系统的性能监控器,记录着系统在某一特定时间段的运行情况。

可以使用选择条件来限定要查看的范围。 

结果会返回特定一个时间段,系统的使用情况。进而可以分析影响性能的主要原因。 

针对于某一条特定的记录,可以查看其对应的详细数据。

2.6 ST12 - 单个事物代码分析

在启动ST12时,可以通过选择屏幕,设置trace的相关参数。

分析结束后,通过trace analysis来查看结果。  

下面是trace结果显示页面,选中某一条,然后使用工具栏中的分析工具,可以查看分析结果。

 双击某一条,也可默认进入ABAP分析结果页面,可以看到,这个结果也其实就是对SAT分析的一个汇总;类似地,也可用SQL trace summery去显示ST05的一个结果。

这篇关于【09】SAP ABAP性能优化 - 调优工具 SM50 | ST05 | SAT | SCI | STAD (STATS) | ST12的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/824869

相关文章

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall

使用Python制作一个PDF批量加密工具

《使用Python制作一个PDF批量加密工具》PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件,下面我们来看看如何使用Python制... 目录1.简介2.运行效果3.相关源码1.简介一个python写的PDF批量加密工具。PDF批量加密

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

使用Java编写一个文件批量重命名工具

《使用Java编写一个文件批量重命名工具》这篇文章主要为大家详细介绍了如何使用Java编写一个文件批量重命名工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录背景处理1. 文件夹检查与遍历2. 批量重命名3. 输出配置代码片段完整代码背景在开发移动应用时,UI设计通常会提供不

Python按条件批量删除TXT文件行工具

《Python按条件批量删除TXT文件行工具》这篇文章主要为大家详细介绍了Python如何实现按条件批量删除TXT文件中行的工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.简介2.运行效果3.相关源码1.简介一个由python编写android的可根据TXT文件按条件批

详解Python中通用工具类与异常处理

《详解Python中通用工具类与异常处理》在Python开发中,编写可重用的工具类和通用的异常处理机制是提高代码质量和开发效率的关键,本文将介绍如何将特定的异常类改写为更通用的ValidationEx... 目录1. 通用异常类:ValidationException2. 通用工具类:Utils3. 示例文

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k