2020-08-18 17:16发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我的以下选择语句出现性能问题。
从bseg中将belnr dmbtr hkont koart zlsch选择到表it_bseg中,用于it_bkpf中的所有条目,其中belnr = it_bkpf-belnr和koart eq'K'。
请提出如何改善此声明的性能问题
您将必须使用部分主键来读取数据库,或者使用/创建索引。 (当前您不知道。)
在更改dev,quality和prod中的编码前后,请执行ST05 SQL跟踪分析,以查看是否使用了数据库访问密钥,或者是否进行了顺序搜索( 搜索整个数据库而不是按键):
现在,最好的选择是将公司代码(BUKRS)添加到选择语句中。
您可能需要考虑将" FOR it_bkpf中的所有条目"更改为范围语句。
如果要进一步调整,则需要添加会计年度(GJAHR)。 我认为添加订单项数(BUZEI)并没有帮助,因为要考虑的值太多。 如果您添加将添加/包括所有可能的BUZEI的限制,则无用。
以下是BSEG的关键组件。
BUKRS BUKRS CHAR 4 0 0公司 码 BELNR BELNR_D CHAR 10 0 0会计凭证编号 GJAHR GJAHR NUMC 4 0 0会计年度 BUZEI BUZEI NUMC 3 0 0会计凭证中的行项目数
这是您的编码的样子:
"是调整性能所必需的 数据yourbukr TYPE bukrs。 设置单包 数据yourbukrs的类型范围。 设置多个Bukrs,例如sign = I,option = EQ,low = yourbukr "可以调整性能的更多选择 "范围在您的范围内,而不是在it_bkpf中包含所有条目 数据类型为belnr_d。 设置多个belnr,例如IT_BKPF的sign = I,option = EQ,low = yourbelnr "还选择gjahr DATA yourgjahr TYPE gjahr。 设置单个gjahr 数据yourgjahrs gjahr的类型范围。 设置多个gjahr,例如sign = I,option = EQ,low = yourgjahr "选项A)中的FOR ALL ENTESE SELECT BERNr dmbtr hkont koart zlsch 从bseg到表it_bseg 对于it_bkpf中的所有条目 WHERE BUKRS = yourbukr是性能所必需的,如果是多个,则在yourbukrs中使用范围 AND belnr = it_bkpf-belnr * AND gjahr = yourgjahr"可选,如果是倍数,请在yourgjahrs中使用范围 和koart eq'K'。 "选项B),范围为your yourn,而不是it_bkpf中为FOR ALL ENTRIES SELECT BERNr dmbtr hkont koart zlsch 从bseg到表it_bseg WHERE BUKRS = yourbukr是性能所必需的,如果是多个,则在yourbukrs中使用范围 如果限制太多(例如> 10'000),则不可能 * AND gjahr = yourgjahr"可选,如果是倍数,请在yourgjahrs中使用范围 和koart eq'K'。
嗨-您要达到什么目的?
访问索引表(例如BSIK甚至是逻辑数据库)可能更快(我们将BRM用于财务文档) )
Hi
如果您要选择koart eq'K'的数据,
最好使用BSIK和BSAK表(
这将提供更快的结果。
此致
Venkat
Amit Kumar ,请告诉我,如果这对您有所帮助,或者您的问题是否仍然存在。
您说" BSIK和BSAK表(已被索引)。"
我想您的意思是隐含的是它们已经具有第一个索引列BELNR的索引。
最多设置5个标签!
您将必须使用部分主键来读取数据库,或者使用/创建索引。 (当前您不知道。)
在更改dev,quality和prod中的编码前后,请执行ST05 SQL跟踪分析,以查看是否使用了数据库访问密钥,或者是否进行了顺序搜索( 搜索整个数据库而不是按键):
现在,最好的选择是将公司代码(BUKRS)添加到选择语句中。
DATA yourbukr TYPE bukrs。 "设置单个Bukrs
DATA yourbukrs Bukrs的类型范围。"设置多个bukrs,例如 sign = I,option = EQ,low = yourbukr
(绝对不排除,如果为模式或范围,则需要使用键或部分键并将值很好地限制为和)。
您可能需要考虑将" FOR it_bkpf中的所有条目"更改为范围语句。
如果要进一步调整,则需要添加会计年度(GJAHR)。 我认为添加订单项数(BUZEI)并没有帮助,因为要考虑的值太多。 如果您添加将添加/包括所有可能的BUZEI的限制,则无用。
以下是BSEG的关键组件。
这是您的编码的样子:
嗨-您要达到什么目的?
访问索引表(例如BSIK甚至是逻辑数据库)可能更快(我们将BRM用于财务文档) )
Hi
如果您要选择koart eq'K'的数据,
最好使用BSIK和BSAK表(
这将提供更快的结果。
此致
Venkat
Amit Kumar ,请告诉我,如果这对您有所帮助,或者您的问题是否仍然存在。
您说" BSIK和BSAK表(已被索引)。"
我想您的意思是隐含的是它们已经具有第一个索引列BELNR的索引。
< p>(仅说对表建立索引是没有意义的-即说按什么列进行索引)一周热门 更多>