如内表GT_TAB结构和字段如下,共100笔数据,问: (1)若执行语句 READ TABLE GT_TAB WITH KEY FIELD = '101'.会进行多少次匹配? 答:匹配100次。虽然没有查找到有效数据,但系统却做了一次全内表的检索。 (2)若执行语句 READ TABLE GT_TAB WITH KEY FIELD = '101' BINARY SEARCH.会进行多少次匹配? 答:匹配6次。同(1)一样的查询条件,匹配次数大大减少,节省出的就是效能。 (3)若执行语句 READ TABLE GT_TAB WITH KEY FIELD = '050'.会进行多少次匹配? 答:匹配50次。第50次匹配时,找到查询的记录。 (4)若执行语句 READ TABLE GT_TAB WITH KEY FIELD = '050' BINARY SEARCH.会进行多少次匹配? 答:匹配1次。折半时第一次就匹配成功。
二分查找的优点体现出来了,同样的数据,同样的查询条件,相差悬殊的匹配次数;用户的体验也是不同的,效能优化以后还会有很多这样的语句对比,直观的体现出哪些语句是应该避免使用的。 请持续关注本SAP论坛!
|