Site-ul consultantilor SAP din Romania
http://www.sap-consulting.ro/phpbb/

MSEG - Select ... for all entries in...
http://www.sap-consulting.ro/phpbb/viewtopic.php?f=1&t=543
Pagina 1 din 1

Autor:  MIRCEA BULAI [ Mie, 19-Dec-2007 14:21 ]
Subiectul mesajului:  MSEG - Select ... for all entries in...

Hi,
All,

Extragerea datelor din tabela MSEG intr_o tabela interna , fara o optimizarea frazei select conduce la un timp de raspuns inacceptabil - de ordinul zecilor de minute. Daca in fraza select mai sunt prezente si JOIN pe alte 3-4 tabele si cu cateva conditii in clauza where atunci timpul de raspuns este descurajant de mare.
*
Incerc optimizarea frazei Select utilizand optiunea FOR ALL ENTRIES :

TIME1 = SY-UZEIT.
select mblnr mjahr
into CORRESPONDING FIELDS OF TABLE it_mkpf
from mkpf
where budat in perioada.

select matnr
from mara
into CORRESPONDING FIELDS OF TABLE it_mara
where mara~mtart in Cont_Mat.
*
Fraza select de mai jos cand FOR ALL ENTRIES refera o singura tabela ( in cazul de mai jos it_mkpf ) - lucreaza bine.
*
select mseg~mblnr mseg~mjahr mseg~zeile
mseg~matnr mseg~ebeln mseg~menge mseg~dmbtr
mseg~bwart
into CORRESPONDING FIELDS OF TABLE it_mseg
from mseg
for all entries in it_mkpf
where mblnr = it_mkpf-mblnr and
mjahr = it_mkpf-mjahr
matnr = it_mara-matnr.

*
Este necesara insa, filtrarea mai severa a articolelor din MSEG si am nevoie numai de articolele dintr_un anumit cont de gestiune iar o constructie de fraza select de forma celei de mai jos - iese pe eroare de sintaxa:


select mseg~mblnr mseg~mjahr mseg~zeile
mseg~matnr mseg~ebeln mseg~menge mseg~dmbtr
mseg~bwart
into CORRESPONDING FIELDS OF TABLE it_mseg
from mseg
for all entries in it_mkpf and it_mara
where mblnr = it_mkpf-mblnr and
mjahr = it_mkpf-mjahr and
matnr = it_mara-matnr.
*
TIME2 = SY-UZEIT.
WRITE : / TIME1, TIME2.

*
Help my,
FOR ALL ENTRIES lucreaza cu mai multe tabele ? Yes or No ...

Autor:  Costin Albu [ Joi, 20-Dec-2007 00:29 ]
Subiectul mesajului: 

FOR ALL ENTRIES lucreaza cu o singura tabela interna. Poti face JOIN pe MSEG cu MARA si FOR ALL ENTRIES IN it_mkpf - daca iti foloseste.

Autor:  MIRCEA BULAI [ Lun, 07-Ian-2008 14:17 ]
Subiectul mesajului: 

Ok. Costin.
Multumesc mult.
Am utilizat, asa cum ai precizat, in fraza select din MSEG clauza FOR ALL ENTRIES IN it_mkpf si JOIN pe MSEG cu MARA. Rezultatul este spectaculos ... timpul de raspuns al frazei select astfel optimizate s_a diminuat considerabil.

Pagina 1 din 1 Ora este UTC + 2 [ DST ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/