【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使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

sqlite3 命令行工具使用指南

《sqlite3命令行工具使用指南》本文系统介绍sqlite3CLI的启动、数据库操作、元数据查询、数据导入导出及输出格式化命令,涵盖文件管理、备份恢复、性能统计等实用功能,并说明命令分类、SQL语... 目录一、启动与退出二、数据库与文件操作三、元数据查询四、数据操作与导入导出五、查询输出格式化六、实用功

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插