Check if the table meets the criteria for table buffering. When applying the table buffering check if the table is frequently read, should be relatively small and deferred visibility of changes is acceptable.
Do not apply table buffering for tables which are changed heavily or if the contents of the table must be always up-to-date.
Ensure that you use the correct SELECT STATEMENT. Here are some of the statements which bypass the table buffer.
SELECT ... DISTINCT SELECT ... COUNT, SUM, AVG, MIN, MAX SELECT ... ORDER BY f1 ... fn SELECT ... GROUP BY / HAVING SELECT ... FOR UPDATE SELECT ... JOIN WHERE clause contains IS NULL statement WHERE clause contains subquery SELECT ... BYPASSING BUFFER |
Avoid reading the same data again and again.
Wrong
SELECT SINGLE * FROM scarr INTO xcarr WHERE carrid = 'LH '. ... SELECT SINGLE * FROM scarr INTO zcarr WHERE carrid = 'LH '. |
SELECT SINGLE * FROM scarr INTO xcarr WHERE carrid = 'LH '. zcarr = xcarr. |
Wrong
SELECT SINGLE * FROM sflight INTO xflight WHERE carrid = 'LH ' AND connid = '0300' AND fldate = '20021204'. xflight-seatsocc = 1. UPDATE sflight FROM xflight. |
UPDATE sflight SET seatsocc = 1 WHERE carrid = 'LH ' AND connid = '0300' AND fldate = '20021204'. |
Wrong
SELECT p~airpfrom p~airpto f~fldate p~deptime INTO xflight FROM spfli AS p INNER JOIN sflight AS f ON p~carrid = f~carrid AND p~connid = f~connid WHERE p~carrid = 'LH ' ORDER BY p~airpfrom p~airpto f~fldate p~deptime. WRITE: / xflight-airpfrom, xflight-airpto, xflight-fldate, xflight-deptime. ENDSELECT. |
SELECT p~airpfrom p~airpto f~fldate p~deptime INTO TABLE flights FROM spfli AS p INNER JOIN sflight AS f ON p~carrid = f~carrid AND p~connid = f~connid WHERE p~carrid = 'LH '. SORT flights BY airpfrom airpto fldate deptime. LOOP AT flights INTO xflight. WRITE: / xflight-airpfrom, xflight-airpto, xflight-fldate, xflight-deptime. ENDLOOP.
Serkan AKKAVAK
Computer Engineer
SAP Department Deputy Manager
Contact : serkurumsal@yandex.com
Social Plugin