In tcode CJIC, SAP used this method in reading clustered table COVP (COBK and COEP) urgg this is a uge file of data to read on.
I noticed that this style is suitable only for reading one objnr record, else you will get stuck.
SELECT alebn alebz aworg aworg_rev awref_rev awsys awtyp beknz belnr beltp blart bldat
bltxt btrkl budat bukrs buzei bwstrat bw_refbz cpudt cputm ctyp1 ctyp2 ctyp3
ctyp4 dabrz delbz ebeln ebelp erlkz fkber geber gjahr gkoar gkont grant_nbr gsber
hrkft kokrs kstar kurst kwaer k_gjahr k_timestmp k_versn k_vrgng lednr logsyso
logsysp logsystem mandt matnr mbfbtr mbgbtr mefbtr megbtr meinb meinh mvflg objnr
objnr_hk objnr_n1 objnr_n2 objnr_n3 orgvg owaer pafbtr pagbtr paobjnr pargb parob
parob1 pbukrs perab perbi perio pernr pfkber pgeber pgrant_nbr pkstar pscope psegment
qmnum rbest refbk refbn refbt refbz refbz_fi refgj scope segment sgtxt stflg stokz
sumbz timestmp twaer usnam uspob varnr vbund versn vrgng werks wkfbtr wkgbtr wogbtr
wrttp wsdat wtgbtr zekkn zlenr zprofit_center zzcommcode zzfuncaccnt zztxtid
zzwriteofcat zz_ext_locno zz_matnr zz_pernr zz_xref3
INTO CORRESPONDING FIELDS OF wa_covp FROM covp
WHERE lednr = c_lednr_00 AND
objnr IN r_bsis_objnr AND
GJAHR IN GR_GJAHR AND
versn IN GR_VERSN AND
wrttp IN r_wrttp AND
KSTAR IN LR_KSTAR AND
PERIO IN GR_PERIO AND
BUDAT IN GR_BUDAT AND
PAROB IN GR_PAROB AND
(VT_VAR_COND).
IF sy-subrc = 0.
CHECK wa_covp-kokrs = c_ko01 AND
wa_covp-belnr IN r_belnr AND
wa_covp-bukrs IN r_bukrs.
CHECK wa_covp-beknz <> c_debit_a.
CHECK wa_covp-wrttp = c_vtype_04 OR wa_covp-wrttp = c_vtype_12.
INSERT wa_covp INTO TABLE tb_covp.
ENDIF.
ENDSELECT.
bltxt btrkl budat bukrs buzei bwstrat bw_refbz cpudt cputm ctyp1 ctyp2 ctyp3
ctyp4 dabrz delbz ebeln ebelp erlkz fkber geber gjahr gkoar gkont grant_nbr gsber
hrkft kokrs kstar kurst kwaer k_gjahr k_timestmp k_versn k_vrgng lednr logsyso
logsysp logsystem mandt matnr mbfbtr mbgbtr mefbtr megbtr meinb meinh mvflg objnr
objnr_hk objnr_n1 objnr_n2 objnr_n3 orgvg owaer pafbtr pagbtr paobjnr pargb parob
parob1 pbukrs perab perbi perio pernr pfkber pgeber pgrant_nbr pkstar pscope psegment
qmnum rbest refbk refbn refbt refbz refbz_fi refgj scope segment sgtxt stflg stokz
sumbz timestmp twaer usnam uspob varnr vbund versn vrgng werks wkfbtr wkgbtr wogbtr
wrttp wsdat wtgbtr zekkn zlenr zprofit_center zzcommcode zzfuncaccnt zztxtid
zzwriteofcat zz_ext_locno zz_matnr zz_pernr zz_xref3
INTO CORRESPONDING FIELDS OF wa_covp FROM covp
WHERE lednr = c_lednr_00 AND
objnr IN r_bsis_objnr AND
GJAHR IN GR_GJAHR AND
versn IN GR_VERSN AND
wrttp IN r_wrttp AND
KSTAR IN LR_KSTAR AND
PERIO IN GR_PERIO AND
BUDAT IN GR_BUDAT AND
PAROB IN GR_PAROB AND
(VT_VAR_COND).
IF sy-subrc = 0.
CHECK wa_covp-kokrs = c_ko01 AND
wa_covp-belnr IN r_belnr AND
wa_covp-bukrs IN r_bukrs.
CHECK wa_covp-beknz <> c_debit_a.
CHECK wa_covp-wrttp = c_vtype_04 OR wa_covp-wrttp = c_vtype_12.
INSERT wa_covp INTO TABLE tb_covp.
ENDIF.
ENDSELECT.
The best way to read covp or any table with a large volume of data is by utilizing its secondary keys instead of primary keys when not available or you can experiment among the two types of keys. Always use FOR ALL ENTRIES and avoid INTO CORRESPONDING FIELDS OF and SELECT .. ENDSELECT. I can guarantee you to have an optimized way of reading such tables.
*please check tcode cjic ;)
*please check tcode cjic ;)