选择单vs选择最多1行

时间:2018-07-30 06:54:08

标签: sap abap opensql

我想了解为什么在选择单行时为什么要使用最多一行的选择,哪一行速度更快,写这些查询时在数据库级别发生了什么,而在使用HANA数据库时却有什么区别。 / p>

1 个答案:

答案 0 :(得分:2)

没有重大区别,SELECT SINGLE快一点;而更多的是关于到ABAP端的数据传输,然后是数据库。

来自SAP ABAP文档,网址为 https://help.sap.com/doc/abapdocu_752_index_htm/7.52/en-US/abapselect_single.htm

  

带加号SINGLE的SELECT语句的结果集与加号UP TO 1 ROWS中的结果集匹配,而不使用加号ORDER BY。

     
      
  • 如果使用加号SINGLE,则无需使用语句ENDSELECT,ENDWITH或将行导入内部表。但是,并不是所有的SELECT语句都可以使用。
  •   
  • 如果使用附加的UP TO 1 ROWS,则必须指定语句ENDSELECT或ENDWITH,或者必须将行导入内部表中。但是,可以指定添加ORDER BY。
  •   
     

带有SINGLE的SELECT语句可以进行优化以读取单个行,这通常比使用UP TO 1 ROWS的添加要快一些。然而,实际上,这种差异通常可以忽略。鉴于此,以下是   推荐:

     
      
  • 使用加号SINGLE精确读取完整指定的行。

  •   
  • 使用多达1个行的加法从一组选定的行中读取最多一行。

  •