选择单个*和选择*最多1行之间的差异

2020-09-01 06:38发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,

请告诉我select single *和select *最多1个行语句之间的区别。哪个是select语句更好。

致谢

巴巴尼

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,

请告诉我select single *和select *最多1个行语句之间的区别。哪个是select语句更好。

致谢

巴巴尼

付费偷看设置
发送
7条回答
槿木_熙
1楼 · 2020-09-01 06:55.采纳回答

嗨Bhabani,

SELECT SINGLE * --->选择满足Where条件的First Matcing行。

同时

选择*最多1行--->选择满足给定条件的所有记录,然后应用聚合和顺序,并根据这些记录返回第一条记录。

此致

Sunil

风早神人
2楼-- · 2020-09-01 06:44

嗨,

这里是区别:

SELECT SINGLE返回给定条件的第一匹配行,如果给定条件有更多匹配行,则它可能不是唯一的。

SELECT ...最多1条ROWS检索所有匹配的记录,并应用聚合和排序并返回第一条记录。

为了检查记录是否存在,与使用SELECT ... UP TO 1 ROWS相比,使用SELECT SINGLE更好,因为它使用的内存少且性能更好。"

根据SAP Performance课程,SELECT UP TO 1 ROWS比SELECT SINGLE更快,因为您没有使用所有的主键字段。

感谢和问候,

Ruthra

lukcy2020
3楼-- · 2020-09-01 06:47

嗨,

" SELECT SINGLE"语句选择它发现的满足" WHERE"子句的数据库中的第一行。如果这导致多个记录,则仅返回第一条记录,因此可能不是唯一的。

主要:从

读取数据

" SELECT .... UP TO 1 ROWS"语句略有不同。 数据库选择WHERE子句定义的所有相关记录,对它们应用任何聚合,排序或分组功能,然后返回结果集的第一条记录。

主要:检查条目是否存在。

选择单个

您需要提及表的所有关键字段。

不需要END SELECT。

与最多1行相比,性能更高。

最多1行。

如果您没有所有可用的主键字段,则可以使用。

需要END SELECT。

由于所有密钥均未通过,因此可能有其他行满足条件。

带有EndSelect的Select语句是一个循环,一次运行可检索单个Record。 该记录必须存储在工作区中,然后附加到内部表中。

没有EndSelect的Select语句不是循环,它一次检索与条件匹配的整个记录​​集,必须直接存储在内部表中。

要记住的关于SELECT SINGLE的最重要的事情是

有几件事要记住:

1)它仅检索一行

2)不需要ENDSELECT语句

3)表格的完整键必须包含在

选择声明的条款

致谢

Kiran Sure

wang628962
4楼-- · 2020-09-01 07:09

在论坛上搜索有一千个标题完全相同的线程。

大简至美
5楼-- · 2020-09-01 06:55

嗨,

您需要检查此类SQL类型的性能问题

环保 >例子 ->性能示例,

u所有类型的SQL语句之间都有差异,然后阅读文档并单击确定时间以选择最佳语句。

问候,

chandu

奖励(如果有用)

Climb_Ma
6楼-- · 2020-09-01 07:04

嗨,

根据SAP Performance课程,SELECT UP TO 1 ROWS比SELECT SINGLE更快,因为您没有使用所有的主键字段。

select single是用于读取具有主键的数据库记录的结构。 在没有主键的情况下,它可能最终会进行顺序搜索,而最多选择1行可能会假设没有提供主键,并将尝试查找最合适的索引。

找出答案的最佳方法是通过sql跟踪或运行时分析。

仅在确保所有返回的记录对您感兴趣的字段具有相同的值时,才使用"选择最多1行"。否则,将仅读取与第一个匹配的记录 条件,但可能是第二或第三条记录具有您要查找的值。

系统测试结果表明,单*所需的时间少于最多1行,因为SELECT ENDSELECT UP TO 1 ROWS的COUNT STOP KEY还有一个附加级别。

" SELECT SINGLE"语句在数据库中选择满足" WHERE"子句的第一行。如果这导致多个记录,则仅返回第一条记录,因此可能不是唯一的。

主要:从

读取数据

" SELECT .... UP TO 1 ROWS"语句略有不同。 数据库选择WHERE子句定义的所有相关记录,对它们应用任何聚合,排序或分组功能,然后返回结果集的第一条记录。

diff-between-select-single--orupto-one-row

select-single-vs-select-upto-onerow

选择-单-和选择-至1之间的差异

奖励积分,如果有用。...

致谢

AK

哎,真难
7楼-- · 2020-09-01 06:54

嗨,

选择单个*

如果该记录导致返回多个记录,则仅返回第一个记录,它将提取数据库中满足where子句的第一行。

选择...最多1行

数据库选择where子句定义的所有相关记录,并应用

对其进行聚合,排序或分组,然后返回结果集的第一条记录。

此致

Manjunath M

一周热门 更多>