Avoid BYPASSING BUFFER in SELECT Statements
WarningPerformance & Database#EC NO_BYPASS_BUFFERRemote Enabled
Overview
Avoid BYPASSING BUFFER in SELECT statements.
ATC Finding Message:
Avoid BYPASSING BUFFER; leverage SAP table buffer for cached data access
Rationale
Using BYPASSING BUFFER in ABAP SQL forces an expensive direct database roundtrip, explicitly ignoring the high-performance application server table buffer. For customizing and configuration tables, this creates unnecessary database load and eliminates the benefits of SAP table buffering.
Standard: Rely on SAP table buffering for cached tables unless an absolute real-time guarantee is strictly mandatory.
Non-Compliant
abap
" Bypasses application server buffer
SELECT * FROM t000 BYPASSING BUFFER INTO TABLE @DATA(lt_data).Compliant
abap
" Uses SAP table buffer
SELECT * FROM t000 INTO TABLE @DATA(lt_data).Suppression
To suppress findings for this rule, append the pseudo-comment to the statement:
abap
" Standard pseudo-comment:
... "#EC NO_BYPASS_BUFFER
" SAP CI_ prefix format:
... "#EC CI_NO_BYPASS_BUFFERRelated Rules
- Avoid Unfiltered SELECT on Database Tables (Full Table Scan Prevention) —
#EC NO_FULL_SCAN_SELECT - Avoid SELECT * in OpenSQL Queries (Minimize Memory & Network Overhead) —
#EC NO_SELECT_STAR - Modernize READ TABLE (Table Expressions & line_exists) —
#EC PREF_TAB_EXPR
Technical Details
- Native ATC Class:
ZCL_SKYLINT_NO_BYPASS_BUF - Implementation File: zcl_skylint_no_bypass_buf.clas.abap