`
evangxli
  • 浏览: 223640 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

SAP性能优化(一)- 汇总

    博客分类:
  • SAP
阅读更多
SAP的透明表中,数据量一旦达到千万、亿级,我们不得不考虑数据库优化的问题。

1. Data Archiving数据归档
这个是最行之有效的方法。
Tcode :
SARA 数据归档主要的Tcode
DB02 性能分析,主要是Performance,sapce等。

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

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

4. 用Hint指定Index
Hint是Oracle提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式,如果你的Hint写错了,在Oracle层会当作注释处理掉。
ABAP中常见有两种用法:(注:在SQL代码中加入Hint,特别是性能相关的Hint是很危险的做法,写得不匹配反而拖累Performance。)
1.全表扫描:%_HINTS ORACLE 'FULL("table_name")'
2.指定索引:%_HINTS ORACLE 'INDEX("table_name" " index_name")'

写Select建议:
1.多表查询,尽量维护一个View,千万不要嵌套,如Select套Select、Loop两层嵌套Loop或Loop嵌套Select;
2.使用Inner Join;
  SELECT H~LGNUM H~TANUM I~TAPOS
    INTO TABLE IT_DATA
    FROM LTAK AS H
   INNER JOIN LTAP AS I
      ON H~LGNUM EQ I~LGNUM
     AND H~TANUM EQ I~TANUM
   WHERE BDATU   EQ '20120412'.
3.使用子查询
SELECT *
  INTO TABLE IT_DATA
  FROM LTAP AS I
WHERE WERKS EQ '1000'
   AND EXISTS ( SELECT * FROM LTAK
                     WHERE LGNUM EQ I~LGNUM
                       AND TANUM EQ I~TANUM
                       AND DRUCK EQ 'X' )
   AND TAPOS EQ '1'.


相关Transaction Code:
ST05 性能分析,追踪SQL,分析哪条SQL Statement语句,最耗时间
STAD 得到某个程序或事务运行时的总体分析数据,系统时间,CPU时间等
SE30 分析某个事务或程序的执行时间,有一些性能分析的例子
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics