关于ABAP索引
迪丽瓦拉
2025-05-28 09:52:43
0次

1、什么是索引

如果把数据库表看做一本书,索引就可以看做书的检索目录。目录中包含书中的大小标题(部分字段数据),并且有对应的数据表条目的页码(指针),可以快速的访问数据库表中对应行的所有字段内容

一个表中包含一个主索引和多个二级索引

主索引:是系统根据表关键字自动创建的,用户不需要创建。

    索引字段的组合,在表中只存在最多一条记录。如果未选择主索引中的字段,则会扫描全表或尝试使用合适的二级索引

二级索引:是用户自定义的,索引ID为三位字符,ID 0为主索引。内置数据类型STRING、RAWSRING和GEOM_EWKB与参考数据类型为FLTP的表字段,都不能作为索引字段

               可以创建唯一或非唯一的辅助索引。

    唯一索引:要求在数据库表中不能包含索引字段中具有相同值的多行数据。

    非唯一索引:在访问数据库时,数据库的优化器检查是否存在合适的索引,所选索引依赖于平台,所以可以在ABAP字典中定义非唯一索引是否应用于哪些数据库系统

     ◾所有数据库系统中的索引:索引是在每个数据库上创建的

     ◾在选定的数据库系统中:可以使用选择列表或排除列表来定义数据库系统,每个列表最多有四个条目

     ◾没有数据库索引:不应在任何数据库上创建索引。此设置,可以从数据库中删除现有的辅助索引。

2、索引的创建

事务代码:SE11

索引页签,创建索引

创建一个非唯一索引

3、索引的使用

  • 将索引字段放在where条件的最靠前位置,更能发挥作用
  • 使用索引时需要注意,索引只能由几个字段组成,通常不超过四个。
  • 为任何一个表创建的索引不应该超过五个,否则将导致过高的更新成本。
  • 某些数据库系统索引会忽略零值,所以在按零值进行选择时不能使用索引。如果有必要,可以在ABAP中使用%_hints指定数据库,以在选择辅助索引时调整数据库系统优化器
SELECTmatnr,werks,maktx
FROM yttest001
INTO TABLE @DATA(lt_test001)
WHERE matnr = '000000000000007777'AND maktx = 'XX'%_HINTS ORACLE 'index(YTLCCTEST001"Z1")'.
*  %_HINTS HDB 'Z1'.
  • 优化器在以下SELECT语句中遇到OR时会停止工作
SELECT * FROM yttest001 WHERE ( matnr = '111' OR matnr = '222' ) AND maktx = 'XX'.
可以优化为: 
SELECT * FROM yttest001 WHERE ( matnr = '111' AND maktx = 'XX'  ) OR ( matnr = '222'  AND maktx = 'XX' ).

相关内容

热门资讯

国庆期间上海全要素旅游交易金额... 【国庆期间上海全要素旅游交易金额298.22亿元 同比增长3.52%】财联社10月7日电,财联社记者...
从“China Travel”...   新华社上海10月7日电(记者戚新源、桑彤)国庆假期,上海连日阴雨。豫园九曲桥上,撑着伞的外国游客...
千万曝光刷屏全网!连云港国庆山... 为期七天的国庆假期圆满落幕,连云港退去假日喧嚣,留存满满温情与丰硕成果。这个国庆,连云港市文旅集团依...
秋日烟火拉满 快来三色路夜市赴... 四川在线记者肖雨杨10月6日晚,成都市锦江区三色路夜市特色街区灯火璀璨、人流如织,“晒秋自由局·解锁...
上海公园国庆“人从众”:人流涌... 在林间溪边,赶一场雅集;在草木庭院,吃顿“漂亮饭”;在水岸草坪,喝一杯咖啡……国庆长假,上海公园绿地...
森林氧吧秋意渐浓 枣庄抱犊崮山... 齐鲁网·闪电新闻10月7日讯 国庆假期,枣庄抱犊崮景区秋景宜人,漫山林木次第换妆,翠绿、金黄、嫣红层...
“长征游”成为假期贵州文旅新风...   新华社贵阳10月7日电题:“长征游”成为假期贵州文旅新风尚  新华社记者向定杰  今年是中国工农...
演艺市集多元联动 来枣庄铁道游... 齐鲁网·闪电新闻10月7日讯 国庆假期,枣庄铁道游击队景区推出免大门票惠民政策,实景演出震撼还原铁道...
“山城后巷”如何成国庆文旅“前... 新华社重庆10月7日电(记者周凯)国庆假期,记者走访发现,山城重庆除了洪崖洞、解放碑等热门景区景点人...
中秋国庆“账本”变了,去哪儿旅... 10月7日,国庆假期收官。对很多“请3休13”中秋国庆连玩游客来说,也是这个超长假期的最后一天。去哪...