SAP性能优化(一)- 汇总

SAP的透明表中,数据量一旦达到千万、亿级,我们不得不考虑数据库优化的问题。

1.DataArchiving数据归档

这个是最行之有效的方法。

Tcode:

SARA数据归档主要的Tcode

DB02性能分析,主要是Performance,sapce等。

2.建立索引

SE11,在表中,Createindex。这里创建索引的依据是Where条件后面的字段,肯定不全是keyfields了,一般关键字已经被sap默认创建为PrimaryIndex。牺牲一些空间,达到性能的提高。

3.建立View

此机制不是很理解,有知道的可以指点一下,先谢谢咯。

4.用Hint指定Index

Hint是Oracle提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式,如果你的Hint写错了,在Oracle层会当作注释处理掉。

ABAP中常见有两种用法:(注:在SQL代码中加入Hint,特别是性能相关的Hint是很危险的做法,写得不匹配反而拖累Performance。)

1.全表扫描:%_HINTSORACLE'FULL("table_name")'

2.指定索引:%_HINTSORACLE'INDEX("table_name""index_name")'

写Select建议:

1.多表查询,尽量维护一个View,千万不要嵌套,如Select套Select、Loop两层嵌套Loop或Loop嵌套Select;

2.使用InnerJoin;

SELECTH~LGNUMH~TANUMI~TAPOS

INTOTABLEIT_DATA

FROMLTAKASH

INNERJOINLTAPASI

ONH~LGNUMEQI~LGNUM

ANDH~TANUMEQI~TANUM

WHEREBDATUEQ'20120412'.

3.使用子查询

SELECT*

INTOTABLEIT_DATA

FROMLTAPASI

WHEREWERKSEQ'1000'

ANDEXISTS(SELECT*FROMLTAK

WHERELGNUMEQI~LGNUM

ANDTANUMEQI~TANUM

ANDDRUCKEQ'X')

ANDTAPOSEQ'1'.

相关TransactionCode:

ST05性能分析,追踪SQL,分析哪条SQLStatement语句,最耗时间

STAD得到某个程序或事务运行时的总体分析数据,系统时间,CPU时间等

SE30分析某个事务或程序的执行时间,有一些性能分析的例子

相关推荐