关于ABAP索引
1、什么是索引
如果把数据库表看做一本书,索引就可以看做书的检索目录。目录中包含书中的大小标题(部分字段数据),并且有对应的数据表条目的页码(指针),可以快速的访问数据库表中对应行的所有字段内容
一个表中包含一个主索引和多个二级索引
主索引:是系统根据表关键字自动创建的,用户不需要创建。
索引字段的组合,在表中只存在最多一条记录。如果未选择主索引中的字段,则会扫描全表或尝试使用合适的二级索引
二级索引:是用户自定义的,索引ID为三位字符,ID 0为主索引。内置数据类型STRING、RAWSRING和GEOM_EWKB与参考数据类型为FLTP的表字段,都不能作为索引字段
可以创建唯一或非唯一的辅助索引。
唯一索引:要求在数据库表中不能包含索引字段中具有相同值的多行数据。
非唯一索引:在访问数据库时,数据库的优化器检查是否存在合适的索引,所选索引依赖于平台,所以可以在ABAP字典中定义非唯一索引是否应用于哪些数据库系统
所有数据库系统中的索引:索引是在每个数据库上创建的
在选定的数据库系统中:可以使用选择列表或排除列表来定义数据库系统,每个列表最多有四个条目
没有数据库索引:不应在任何数据库上创建索引。此设置,可以从数据库中删除现有的辅助索引。
2、索引的创建
事务代码:SE11
索引页签,创建索引

创建一个非唯一索引

3、索引的使用
- 将索引字段放在where条件的最靠前位置,更能发挥作用
- 使用索引时需要注意,索引只能由几个字段组成,通常不超过四个。
- 为任何一个表创建的索引不应该超过五个,否则将导致过高的更新成本。
- 某些数据库系统索引会忽略零值,所以在按零值进行选择时不能使用索引。如果有必要,可以在ABAP中使用%_hints指定数据库,以在选择辅助索引时调整数据库系统优化器
SELECT
matnr,
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' ).
定期更文,欢迎关注

关于ABAP索引的更多相关文章
- ABAP-Keyword Documentation
转载:https://help.sap.com/doc/abapdocu_750_index_htm/7.50/en-US/abenabap.htm ABAP - 关键字文档 本文档描述了ABAP语言 ...
- ABAP中SQL语句,指定索引(oracle)
①常用的两种方法: 1.指定使用全表扫描:%_HINTS ORACLE 'FULL(table_name)' 表示扫描整个表 2.指定索引:%_HINTS ORACLE 'INDEX("ta ...
- ABAP开发顾问必备:SAP ABAP开发技术总结
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 优化ABAP性能(摘录)
1.使用where语句不推荐Select * from zflight.Check : zflight-airln = ‘LF’ and zflight-fligh = ‘BW222’.Endsele ...
- ABAP 表格控制(Table Control)和步循环
表格控制(Table Control)和步循环 1.两个标准Demo: SAPMTZ60,SAPMTZ61 2.简介 3.建立Table Control程序的基本流程 4.使用步循环 5.表格 ...
- ABAP程序系统字段中英文详解
SY-SUBRC: 系统执行某指令后,表示执行成功与否的变量,’0’ 表示成功SY-DBLNT: 被处理过的记录的笔数 SY-UNAME: 当前使用者登入SAP的USERNAME;SY-DATUM: ...
- ABAP:SAP报表性能的优化
大部分ABAPer都是从SAP报表及打印开始学起的,大家也都认为写个SAP报表程序是最简单不过的事了. 但是实际情况真的如此吗?写报表时除了保证数据的准确性,您可曾考虑过报表的性能问题吗? 由于报表程 ...
- ABAP 内表 详解
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 字符串处理:ABAP中的正则表达式
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- ABAP基本数据类型、通用类型
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
随机推荐
- Ubuntu 20.04 开启局域网唤醒(WoL)
打开主板相关设置 创建 systemd 自启动设置文件 vim /etc/systemd/system/wol@.service 放入以下内容: [Unit] Description=Wake-on- ...
- iOS程序生命周期流程
盛年不重来,一日难再晨.及时宜自勉,岁月不待人. iOS系统资源是有限的,合理的去配置应用程序的运行状态以及了解app的生命周期对于大多数开发者来说是很重要的一件事情!在后台进行运行时app会受到 ...
- 实例讲解SpringBoot集成Dubbo的步骤及过程
首先,让我们先了解一下Spring Boot和Dubbo. Spring Boot 是一个开源的 Java Web 框架,它可以帮助开发者快速创建独立的.生产级别的 Spring 应用程序.Sprin ...
- 跨境 ERP 积加系统与金蝶云星空系统数据集成对接方案
方案简介 由于积加ERP 系统专注服务于亚马逊跨境电商是非常复杂和庞大的应用系统,具有非常丰富的业务流程.复杂的系统架构和服务接口.主要涉及系统解决店铺运营,店铺管理,供应链管理,协同智能补货.采用& ...
- 洛谷4055 [JSOI2009]游戏(二分图博弈)
例题:在N×M的迷宫中有一个棋子,小 AA 首先任意选择棋子放置的位置.然后,小 YY 和小 AA 轮流将棋子移动到相邻的格子里.游戏的规则规定,在一次游戏中,同一个格子不能进入两次,且不能将棋子移动 ...
- wps表格求标准差怎么算?
在WPS表格中,要计算标准差,可以使用STDEV函数.标准差是一种衡量数据集合离散程度的统计指标.下面我将详细介绍如何使用STDEV函数来计算标准差. STDEV函数的语法为:STDEV(range) ...
- RocksDB 在 vivo 消息推送系统中的实践
作者:vivo 互联网服务器团队 - Zeng Luobin 本文主要介绍了 RocksDB 的基础原理,并阐述了 RocksDB 在vivo消息推送系统中的一些实践,通过分享一些对 RocksDB ...
- [ABC268G] Random Student ID
Problem Statement Takahashi Elementary School has $N$ new students. For $i = 1, 2, \ldots, N$, the n ...
- springBoot——整合mybatis
spring整合mybatis springBoot整合mybaits 配置文件 spring: datasource: url: jdbc:mysql://localhost:3306/test d ...
- 基于Raft算法的DLedger-Library分析
1 背景 在分布式系统应用中,高可用.一致性是经常面临的问题,针对不同的应用场景,我们会选择不同的架构方式,比如master-slave.基于ZooKeeper选主.随着时间的推移,出现了基于Raft ...