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分析某个事务或程序的执行时间,有一些性能分析的例子