Performance ata可选择多次(随后在ABAP侧移除)

Performance ata可选择多次(随后在ABAP侧移除),performance,abap,Performance,Abap,简而言之,除非您确定数据量很小,否则请确保在选择之前没有重复的数据。thx,很抱歉有这么多问题!这个答案正是我所希望的!1) 我不同意“无需删除重复项”,我在单独的回答中解释了为什么2)这种书写方式也是可能的SELECT。。。如果任何属性不在('1'、'2'、'3'、'4'),或者如果您愿意,可以使用常量而不是文字(PS:我同意,作为经验法则,不应该避免使用常量,但数据库可以很好地处理它-取决于许多参数-因此如果没有其他选择,那么性能测试将确认它是否正常)桑德拉对所有参赛作品的评价绝对正确。这可

简而言之,除非您确定数据量很小,否则请确保在选择之前没有重复的数据。

thx,很抱歉有这么多问题!这个答案正是我所希望的!1) 我不同意“无需删除重复项”,我在单独的回答中解释了为什么2)这种书写方式也是可能的
SELECT。。。如果任何属性不在('1'、'2'、'3'、'4')
,或者如果您愿意,可以使用常量而不是文字(PS:我同意,作为经验法则,不应该避免使用常量,但数据库可以很好地处理它-取决于许多参数-因此如果没有其他选择,那么性能测试将确认它是否正常)桑德拉对所有参赛作品的评价绝对正确。这可能会导致与数据库的额外往返,并降低性能。但是范围导致了子句,这是非常不同的。它们是否较慢取决于优化器。SAP HANA不会因其字典体系结构而变慢。Oracle的DB由于其强大的优化器也不考虑。性能好,但是由于查询的最终最大长度(仍然依赖于数据库),所以仍然需要减小IN值的大小,所以仍然要删除Digialth.thx,并对许多问题感到抱歉!这个答案正是我所希望的!1) 我不同意“无需删除重复项”,我在单独的回答中解释了为什么2)这种书写方式也是可能的
SELECT。。。如果任何属性不在('1'、'2'、'3'、'4')
,或者如果您愿意,可以使用常量而不是文字(PS:我同意,作为经验法则,不应该避免使用常量,但数据库可以很好地处理它-取决于许多参数-因此如果没有其他选择,那么性能测试将确认它是否正常)桑德拉对所有参赛作品的评价绝对正确。这可能会导致与数据库的额外往返,并降低性能。但是范围导致了子句,这是非常不同的。它们是否较慢取决于优化器。SAP HANA不会因其字典体系结构而变慢。Oracle的DB由于其强大的优化器也不考虑。性能好,但是由于查询的最终最大长度(仍然依赖于数据库),仍然需要减小IN值的大小,所以仍然要删除复制品。绝对同意!使用
排序
+
删除相邻的重复项
=>我曾经(由于冷却函数的错误)有一个输入表,其中有数万个条目,其中只有一对(少于10个)不同=>的条目产生了巨大的差异!!!绝对同意!使用
排序
+
删除相邻的重复项
=>我曾经(由于冷却函数的错误)有一个输入表,其中有数万个条目,其中只有一对(少于10个)不同=>的条目产生了巨大的差异!!!
DATA:
  lt_itab       TYPE TABLE OF string,
  lt_range_itab TYPE RANGE OF string
  .

* Populating itab with duplicates
* Can the following somehow become a neat one-liner? This is ugly!
APPEND '1'  TO lt_itab.
APPEND '2'  TO lt_itab.
APPEND '2'  TO lt_itab.
APPEND '3'  TO lt_itab.
APPEND '4'  TO lt_itab.
APPEND '4'  TO lt_itab.

*Populating range table from itab
*Should one remove the duplicates here for a performance boost in the upcoming select?
*If so - how?
*-------------------------------------------------------
lt_range_itab = VALUE #(
  FOR <ls_itab> IN lt_itab
  ( sign = 'I'
    option = 'EQ'
    low = <ls_itab> )
).

*...or is such a select usually faster than the time it takes to remove the duplicates?
*-------------------------------------------------------
*SELECT *
*  FROM       anyTable
*  INTO TABLE @DATA(lt_new_data)
*  WHERE      anyProperty NOT IN @lt_range_itab.
DATA(lt_itab) = VALUE string_table( ( `1` ) ( `2` ) ( `2` ) ( `3` ) ( `4` ) ( `4` ) ).
SELECT ... WHERE anyProperty NOT IN ('1','2','3','4')
SORT lt_range_tab.
DELETE ADJACENT DUPLICATES FROM lt_range_tab.