有几种方案的:一种是SAP有标准的PS模块,项目管理模块,可以很清晰看到一个订单从头到尾的情况
站在用户的角度思考问题,与客户深入沟通,找到开阳网站设计与开阳网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、网站制作、企业官网、英文网站、手机端网站、网站推广、域名注册、网页空间、企业邮箱。业务覆盖开阳地区。
还有的就是就是定制开发了,这个还是要求你们理顺流程找ABAP人员开发。
性能问题总是数据库领域里面永恒的话题,使用 DB2 作为底层数据平台的 SAP 系统为我们提供了许多方法监控和检测数据库性能问题。本文从数据库性能问题检测的一般思路和方法论入手,介绍了如何通过 SAP 系统对 DB2 的性能进行监控和分析。回页首数据库性能问题检测的思路及方法论在数据库运维工作中遇到性能问题时,通常会让数据库管理员感到无从下手,不容易断定问题的根源所在。如果能有一种可操作的一般性的方法作为指导,我们通常就能够发现大部分数据库性能问题的根源。那么,首先根据我们对数据库性能监控的一些实践经验来总结一下在遇到性能问题时应该进行哪些检查。我们不能保证通过文中介绍的方法就能找到所有性能瓶颈,性能问题的原因很多,解决方法也多种多样,我们在这里只是提供一些普遍的,一般性的方法,具体的实施还需要根据系统的具体情况和不断的实践经验积累。同时,通过进行这些监控,也有利于为技术支持人员提供更详细诊断信息,以便于快速定位性能问题。当遇到一个性能问题,我们首先进行以下排查: 性能问题是在何时发生的; 性能问题持续存在的还是间断性的; 系统范畴的性能问题还是数据库本身的性能问题; 性能问题是否只存在于某一个应用; 性能问题是随机出现的还是必然出现的。如果性能问题存在于所有应用,我们可以进行以下排查: 如果发现系统存在大量的 I/O 操作: 检查设备使用情况; 检查排序情况和临时表空间; 检查查询性能是否有效的得到优化; 检查缓冲池的使用状况。 如果发现 CPU 具有很高的负载: 检查排序状况; 检查缓冲池的使用状况。 如果发现 CPU 和 I/O 操作的负荷都很大: 检查用户数量; 检查排序状况。 如果发现 CPU 和 I/O 操作的负荷都很小而数据库响应仍然很慢: 检查并发性和锁的使用状况; 检查缓冲池的使用状况。如果性能问题可以被定位在一个应用,我们可以进行以下排查: 检查排序情况。 检查并发性和锁的使用状况。 检查统计信息是否更新。回页首通过SAP 系统的工具对 DB2 UDB 进行监控通过前一部分的描述,我们了解到了在遇到性能问题以后应该用什么思路寻找性能的瓶颈,从而想办法解决性能问题。在对数据库进行检查的过程中,我们通常会用到数据管理工具,命令行以及操作系统的工具,还要结合 SAP 的自身特点寻找性能问题的根源,这将是一个比较繁琐和费事的工作。在使用 SAP 作为底层数据库的 SAP 系统中,由于 SAP 实现了与 DB2 紧密的结合。SAP 的 DBA Cockpit 提供了许多功能来支持数据库的管理工作,使得数据库性能监控和分析变得更加简单。下面我们就来看看,SAP 为 DB2 性能监控和分析提供了哪些支持。磁盘I/O 性能监控概念对于数据库来说,最消耗时间的操作实际上是从磁盘中检索数据。这是由磁盘的物理特性决定的。尽管磁盘存储技术已经取得了极大的进步,但磁盘的读写速度与内存的读写速度仍然相差几个数量级。从性能调整的角度来说,如果一个机器的磁盘出现问题,那么其他的任何优化工作都无法提供帮助。因此我们应该保证运行数据库的磁盘系统是健康的。SAP 系统为我们提供了监控磁盘读写速度的功能,让我们可以直接了解当前磁盘的性能状况。监控我们首先进入 SAP 的 DBA Cockpit ( 可以直接输入 st04),然后在 Performance 的目录下双击 Database, Buffer Pool 的标签内,可以看到当前数据库磁盘的读写状况。图1. 磁盘 I/O 信息从图中我们可以看到磁盘物理平均读速度为 3.25ms,写速度为 7.45ms。分析磁盘物理读写速度反应了磁盘子系统的性能。一般情况下,磁盘读写速度应该小于 5ms,读速度一般要大于写速度,但在一些具有大量缓存的存储系统中,写速度可能会快于读速度。磁盘性能的优化已经超出了本文讨论的范围,这里只是提供一些基本的指导。缓冲池监控概念缓冲池是数据库单独开辟的一块存储区域,这片区域用来缓存从磁盘读出的包含数据表和索引的数据页。当数据第一次被检索出来以后便被暂时缓存在缓冲池中,当数据下次被访问时,数据库将直接从缓冲池中读取数据,这样减少了相对缓慢的磁盘 I/O 操作。因此,缓冲池的配置对于数据库性能十分重要。在缓冲池中,目前还不支持存储大对象和长数据记录。反映缓冲池质量的一个重要性能指标是缓冲池命中率。缓冲池命中率指数据库管理器不需从磁盘读入页就能处理页请求的时间百分比。其计算方法为:缓冲池命中率 = (1 - (( 缓冲池数据物理读 + 缓冲池索引物理读 ) / ( 缓冲池数据逻辑读 + 缓冲池索引逻辑读 ) ) ) * 100%另外两个重要性能指标是索引命中率和数据命中率。索引命中率反映了可以在缓冲池中找到的页面能够满足的对索引页的所有读请求所占的百分比。其计算方法为:索引命中率 = (1 - ( 缓冲池索引物理读 / 缓冲池索引逻辑读 ) ) ) * 100%数据命中率说明了可以在缓冲池中找到的页面能够满足的对数据页的所有读请求所占的百分比。其计算方法为:数据命中率 = (1 - ( 缓冲池数据物理读 / 缓冲池数据逻辑读 ) ) ) * 100%监控我们可以从三个级别来看缓冲池的质量,这三个层次分别是数据库级,缓冲池级,表空间级。在 SAP 系统中我们可以使用 DBA Cockpit 来查看不同级别的缓冲池质量。首先可以在数据库级查看缓冲池的质量,我们进入 SAP 的 DBA Cockpit,然后在 Performance 的目录下双击 Database, 在 Buffer Pool 的标签内,可以看到当前数据库总体的缓冲池质量。图2. 缓冲池总体状况我们从图中可以看出,数据库缓冲池的总体命中率是 99.81%,数据命中率为 99.86%,索引命中率为 99.70%。如果在 st04 中选中 Performance - Buffer pools, 我们也可以在缓冲池级别看到命中率,如果一个数据库只有一个缓冲池,那么这个命中率与我们在数据库级别看到的命中率相同。图3. 数据库级别缓冲池信息如果在 st04 中选中 Performance - Tablespaces,我们就可以在表空间级别看到缓冲池的命中率。图4. 表空间级别缓冲池信息分析缓冲池的理想命中率对于索引应该大于 90%, 对于数据应该大于 95%。要提高缓冲池的命中率,可以增加缓冲池的大小,也可以为不同类型数据分配不同缓冲池,可以为每个经常访问的具有自己的表空间的大型表使用一个缓冲池,也可以为一组小型表使用一个缓冲池。缓存监控概念数据库的缓存主要有包缓存 (Package Cache) 和编目录缓存 (Catalog Cache)。它们与数据库的查询性能息息相关。包缓存(Package Cache) :SQL 语句编译通常消耗的资源比较大,为了提高系统性能,动态 SQL 语句在被编译后一般存放于包缓存中。当用户下一次请求同一条 SQL 语句,就无需再次编译 SQL 语句。包缓存的质量一般通过包缓存命中率来衡量,它表明了包缓存的设置是否成功的避免了 SQL 语句的重新编译。其计算方法为:包缓存命中率 = (1 - ( 在包缓存中的插入次数 / 查询包缓存的次数 )) * 100编目录缓存 (Catalog Cache):编目录缓存用来缓存系统编目录信息,如系统表,权限,系统存储过程。系统编目录的访问速度对于系统的性能有着十分重要的影响。在 DPF 环境下,系统编目录的访问速度至关重要。通过使用编目录缓存可以大大提高访问系统编目录的速度。编目录缓存质量一般通过编目录命中率来衡量,它表明了编目录缓存是否成功的避免了从磁盘中读取编目录信息。其计算方法为:包缓存命中率 = (1 - ( 在编目录缓存中的插入次数 / 查询编目录缓存的次数 )) * 100监控我们进入 SAP 的 DBA Cockpit,然后在 Performance 的目录下双击 Database, 在 Cache 的标签内,可以看到当前数据库缓存的统计信息。图5. 数据库缓存信息从图中我们可以看到编目录缓存的质量是 99.93%,在图中的 quality 就是我们前面所说的命中率。当前数据库编目录缓存的大小为 10240KB,没有缓存溢出。在左边一栏,我们可以看到,包缓存的质量是 97.64%,包缓存的大小为 62080KB,没有缓存溢出。分析包缓存的理想命中率应该大于 98%,用户通常不用关注包缓存的大小,如果 PCKCACHESZ 被设置为 automatic,其大小由 DB2 自动调节。编目录缓存的理想命中率也应该大于 98%,其大小应该保证编目录缓存不应该发生任何溢出。我们可以调整数据库配置参数 CATALOGCACHE_SZ 来改变编目录缓存大小,由于编目录缓存是从数据库堆中分配的,因此,在改变 CATALOGCACHE_SZ 变量的同时,应该注意到数据库堆的大小也会相应改变。排序监控概念DB2 在运行过程中时经常要做排序操作。一般说来,在 OLTP 类型的数据库中,排序操作通常少于 OLAP 类型的数据库环境。排序操作通常会在三种情况下发生,第一种情况是数据的查询处理,比如 order by, group, 哈希连接,索引操作,内存的表操作等等。第二种是当我们载入操作的对象是带有索引的表时,再载入操作过程中就会涉及到对索引键的列表和排序,这样就会产生排序操作。第三种情况发生在创建索引的时候。排序的效率因而直接影响到数据库的响应时间,我们必须对排序进行有效监控。监控我们进入 SAP 的 DBA Cockpit,然后在 Performance 的目录下双击 Database, 在 Sorts 的标签内,可以看到当前数据库的排序状况。图6. 数据库排序状况可以从图中看出,共享排序堆的大小为 1676KB, 私有排序堆的大小为 1340KB。如果没有索引满足所取的行的要求顺序,或者 DB2 查询优化器认为排序的代价低于索引扫描,那么就需要在排序堆中进行排序。DB2 的排序分为私有排序和共享排序。私有排序发生在代理的私有代理内存中,而共享排序发生在数据库的数据库共享内存中。我们还可以看出,排序堆溢出次数 1174 次,总的排序次数为 310642 次。分析如果数据库分配的排序堆大小不够大,就会出现排序溢出的情况,这样就需要动用临时表空间来辅助排序的进行,由于临时表空间存在于磁盘,这将大大影响排序的速度。理想情况下,排序溢出率 ((Sort overflows * 100) / Total sorts ) 不应该超过 1%。如果这个溢出率过高,那么数据库中很可能发生了大的排序,我们就需要调查出现过度排序的原因。在发现根源之前,一个简易的解决方案是增加 SORTHEAP 的大小。然而,这样做通常是治标不治本并且掩盖了真实的性能问题。比较彻底的解决方案应该是确定引起排序的 SQL 并更改该语句,或通过增加索引来避免或减少排序开销。并发性和锁的监控概念数据库的锁是数据库管理器用来控制应用程序并发访问数据库数据并且保证数据库数据的一致性的重要机制,数据库中行和表都可以上锁。数据库的锁在保证了数据库数据一致性同时也在一定程度上降低了数据库的响应速度。锁等待和死锁是影响数据库相应速度的重要因素,糟糕的应用程序设计和不合理的 SQL 查询计划的生成都会导致锁等待和死锁。锁升级 (Lock Escalation):一个锁通常作为一个记录存储在内存锁表中,锁表的大小可以由数据库自动调节。锁升级一般发生在锁的数量超过了数据库配置参数 MAXLOCKS 所指定的大小,为了减少锁的数量,数据库会把若干行一级的锁合并为表锁。这样数据库的并发性就会受到影响。监控我们进入 SAP 的 DBA Cockpit,然后在 Performance 的目录下双击 Database, 在 Locks and Deadlocks 的标签内,可以看到当前数据库的锁的状况。图7. 数据库锁状况从图中可以看到,当前锁表的大小为 22144KB,已经使用了 94KB。锁等待的平均时间为 10.40ms,没有锁升级和死锁被检测到。分析影响数据性能的有关锁的问题主要集中在锁等待,死锁和锁升级。这些问题的根源很可能是数据库应用的设计问题。因此,我们应该仔细调查造成死锁,锁等待和锁升级的应用程序,以及其用到的 SQL 语句。同时,在问题定位之前,我们也可以通过下面方法来解决数据库锁造成的性能问题。锁等待和死锁:如果要避免锁等待和死锁的问题我们需要注意数据库参数中的 DLCHKTIME 和 LOCKTIMEOUT 两个参数的设置。其中 DLCHKTIME 单位是毫秒,是 DB2 检查死锁的间隔时间,如果该值为 10000ms,则表明每隔 10 秒钟数据库会检查一下有无死锁存在,如有死锁,会选择回滚其中的某一个事务,让另外一个事务完成交易。LOCKTIMEOUT 单位是秒,是锁等待最长时间,超过该时间仍未获得锁,则返回错误。LOCKTIMEOUT 的默认值为 -1,这意味着锁等待时间无限大,一般不推荐这种设置。DLCHKTIME 时间通常要设得比 LOCKTIMEOUT 时间小一些,否则还未发现死锁,就会返回锁等待超时错误 (SQL0911N 返回码 68) 。锁升级:要避免锁升级,我们应该正确设置数据库参数 LOCKLIST 和 MAXLOCKS。LOCKLIST 表明分配给锁表的内存大小。每个数据库都有一个锁表,锁表包含了并发连接到该数据库的所有应用程序所持有的锁。MAXLOCKS 定义了应用程序可以占有锁表空间的百分比,当一个应用程序所使用的锁表百分比达到 MAXLOCKS 时,数据库管理器会升级这些锁,用表锁代替行锁,从而减少列表中锁的数量。我们一般可以通过增加锁表大小的方法解决锁升级问题。日志性能监控概念DB2 事务日志对于恢复来说极其重要。它们记录对数据库对象和数据所做的更改。在 DB2 中数据和索引的改变都会先被写入日志缓冲区,保证对数据所做的修改在记录到数据库之前,总是被具体化为日志文件。日志缓冲区的数据由日志处理器写入磁盘。在下列情况下,查询处理必须等待日志数据写入磁盘后才能进行: 事务提交时。 在将相应数据页写入磁盘之前,因为 DB2 使用预写日志记录。预写日志记录的好处是当执行 COMMIT 语句完成事务之后,并非所有更改的数据和索引页都需要写入磁盘。 在元数据更改(一般通过执行 DDL 语句产生的)之前。 日志缓冲区已满。DB2 以这种方法管理向磁盘写入日志数据的目的是尽可能地缩短处理延迟时间。在存在许多较小的并发事务的环境中,许多处理延迟是由 COMMIT 造成的,因为它必须等待日志数据写入磁盘后才能进行。因此,日志处理器进程频繁地将少量日志数据写入磁盘会造成大量处理延迟,另外一些延迟是由日志 I/O 开销造成的。监控我们进入 SAP 的 DBA Cockpit,然后在 Performance 的目录下双击 Database, 在 Logging 的标签内,可以看到当前数据库日志的状况。图8. 数据库日志状况我们在图中可以看到日志文件以及日志缓冲区的情况。包括日志文件的数量,大小,数据库使用的日志空间以及可用日志空间的大小。还可以看到日志缓冲区的情况,当前日志缓冲区的命中率为 100%。分析由于数据库中的处理必须等待日志数据写入磁盘才能进行,日志文件的读写速度对数据库的响应速度也会产生很大影响。因此,应该把日志文件放到速度比较快的磁盘上,以减少磁盘 I/O 开销。日志文件写入的性能可以通过平均写时间来观察。另外,我们可以通过调整数据库配置参数 LOGBUFSZ 来指定日志缓冲区的大小。如果数据库对于日志磁盘有相当多的读操作,或者希望有较高的磁盘利用率。一般来说,如果日志缓冲区的命中率小于 98%,那么可以增加这个缓冲区的大小以提高命中率。当增加这个参数的值时,也要考虑 DBHEAP 参数,日志缓冲区使用的空间是 DBHEAP 参数所定义的内存空间的一部分。数据库统计信息监控概念数据库的统计信息反映了表及其相关索引的物理特点。统计信息主要包含: 表信息:表的行数,使用的数据页,溢出的行数,列的平均长度,列的最大最小值等。 索引信息:索引条目的数量,索引所关联列的不同值的数量,索引的层数等。这些信息被数据库查询优化器用来生成查询计划。好的访问计划对于 SQL 语句的快速执行至关重要。我们需要想办法保证统计信息准确地反映了当前数据库的状况。由于数据库的表和索引总是随着数据库处理各种更新请求而不断发生变化的,因此,总会出现统计信息过时,而不能正确反映数据库数据现状的情况。这时,数据库查询优化器生成的查询计划可能不是最优的,这将大大影响数据库的查询性能。我们应该经常检查数据库的统计信息是否为最新的,并及时更新统计信息。SAP 系统为我们提供了监控和执行统计信息收集的方法。监控我们进入 SAP 的 DBA Cockpit,然后在 Performance 的目录下双击 Tables, 在 Table 列表中双击要监控的表,在 Table 的标签中,我们可以看到当前表的基本信息。这时,如果我们点击 Count 按钮,就会看到统计信息的质量。图9. 表的统计信息状况从图中我们看到,表的当前行数为 27,Deviation 为 8%。分析如果我们监控到一个表的 Deviation 超过了 15%,我们就应该重新收集这个表的统计信息。在 SAP 中我们可以选择手动收集统计信息。我们也可将系统配置成自动收集统计信息,这样大大减少了系统手动维护的工作量。自动统计信息收集通常每隔 2 个小时触发一次,它会自动选择在 24 小时之内没有收集过统计信息的持久的基表。如果 SAP 系统进行 Client Copy 或在 BI 表中加载大量数据,由于这些操作在短时间就可以改变表的数据状况及分布,因此会导致统计信息的过时。在 DB2 V9.5 中,为了解决这个问题,提供了一种 RTS (Real Time Statistics) 的特性,该特性可以允许在查询被处理并优化前对表的统计信息进行收集或采样,如果优化器认为重新收集统计信息比用过时的统计信息进行查询的速度快,那么会在处理该查询之前重新收集表的统计信息,从而达到实时收集统计信息的目的。我们一般需要将数据库配置参数 AUTO_STMT_STATS 设为 ON 来开启 RTS 特性,但在 SAP 系统中,RTS 已经是默认设置,我们无需进行任何改变。回页首结束语本文从数据库问题检测的一般思路和方法论出发,介绍了如何通过 SAP 系统对 DB2 的性能进行监控。
仓库管理SAP系统使用:
1、简单来讲SAP系统提供的仓库管理功能有:收、发、转、盘点四大项。其中,收就是收货入库,除系统标准的收货、退货外,还可以依实际需要增设超交收货、折补收货、免费收货等;
2、发就是发料,主要有对订单的投料(进订单成本)、对成本中心的投料(费用性消耗);
3、转就是转储,转储含车间之间转储、工厂之间转储、跨公司转储、跟单与不跟单转储等;
4、盘点在SAP中只提供了盘盈亏的账务处理功能,如果需要打印盘点表、盘点卡等,需要另外开发处理。
拓展资料
SAP系统:
系统配置:
所谓系统配置命令,通常包含系统操作配置、系统传输配置、系统自定义内容配置等相关命令。系统配置的范围很广,这里介绍的系统配置不包括模块配置内容,主要是系统层面的相关配置命令。常用的操作命令主要包含以下几种。
(1)系统传输配置命令:SE09/SE10、STMS
(2)系统后台参数配置命令:SPRO
(3)系统信息发布命令:SM02
(4)目标集团参数配置命令:SCC4
后台维护:
在SAP系统中,普通用户常常因为权限不够导致很多事项无法处理,需要通过管理员在后台对相应的主数据及参数进行修改设置。这里主要介绍以下几个常用的后台维护命令。
(1)批处理命令:SCAT
(2)定义后台作业命令:SM36
(3)查看后台作业命令:SM37
程序:
程序编辑属于SAP系统开发的一个重要组成部分,SAP系统本身带有ABAP语言编辑器,可以提供强大的自开发程序功能。这里介绍程序编辑通常使用的相关命令。一般来说,程序编辑常用到的命令有以下3各。
(1)程序编辑器命令:SE38
(2)函数编辑器命令:SE37
(3)对象浏览器命令:SE80
表间维护:
(1)SAP系统中的数据都是存储在不同的表空间中。对于这些表的查询、修改及数据整理,SAP提供有相应的操作命令。常用的表间维护命令主要包括以下几种。
(1)ABAP数据字典命令:SE11
(2)维护表视图命令:SM30
用户权限:
在SAP系统中对于用户及权限的控制是非常严格的,权限参数、权限、用户的管理,均有一套专有的体系。这里介绍用户及权限控制常用的命令,包括以下几种。
(1)权限创建及修改命令:PFCG
(2)用户创建及配置命令:SU01
(3)用户批量处理命令:SU10
(4)用户组创建维护命令:SUGR
6、系统监控常用命令:
SAP系统作为企业管理的核心工作平台,系统管理员需要随时监控日常的系统运行情况,尤其是对系统日志、进程管理、用户使用、操作系统、数据库等运行的情况要重点关注。这里简单介绍几个常用的系统监控命令。
(1)系统日志分析命令:SM21
(2)系统进程监控命令:SM50
(3)用户状态监控命令:SM04
参考资料来源百度百科-sap系统
SAP系统就是当前最具影响力,代表智能性、先进性、可持续性的企业管理系统。全球77%的交易收入都与SAP系统有关,SAP(思爱普)是ERP的代名词,是全球最大的企业管理和协同化商务解决方案供应商、全球第二大云公司,在中国已经有超过 16,100 多家客户。
SAP系统是先进性的代表。目前,SAP已经深入到各个行业以及领域,其中使用SAP最具代表的企业有Microsoft、Pfizer, Inc.、IBM等,国内的比如中国石油,甚至于银行管理系统都运用到SAP系统,可以预见SAP系统的先进性,以及前瞻性。先进代表的不仅仅只是当前,也包括未来10年之内,系统的性能与数据处理模式都适应当代的发展模式。对于这一点,很多传统的erp系统都做不到,很多行业都是一个系统多用,基本的开发模式都已经限定好,可塑性不强。
SAP系统是智能性管理系统代表。这里还是拿传统型erp系统进行对比,有对比才能凸显SAP系统的智能化。我们都知道erp系统是一种数据交互行为,传统的erp数据比较死板,基本上不存在对数据的分析,简单的调用与输入输出基本构成数据的参数。而SAP系统却出基本的输入输出操作之外,还有自主检测成本,根据企业的管理模式输出合理的结果。比如仓储,进货量与每月销售量的对比,从而得出最佳的库存数据,防止积压货物。智能性使用过SAP系统的企业可以明显体会出来,所以这也是企业追逐SAP人才的根本原因。