Acum este Vin, 29-Mar-2024 08:24

Ora este UTC + 2 [ DST ]




Scrie un subiect nou Răspunde la subiect  [ 3 mesaje ] 
Autor Mesaj
MesajScris: Mie, 19-Dec-2007 14:21 
Neconectat

Membru din: Mie, 12-Ian-2005 10:41
Mesaje: 22
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 ...


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Joi, 20-Dec-2007 00:29 
Neconectat
Site Admin

Membru din: Lun, 19-Mai-2003 12:03
Mesaje: 324
Locaţie: Bucuresti
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.


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Lun, 07-Ian-2008 14:17 
Neconectat

Membru din: Mie, 12-Ian-2005 10:41
Mesaje: 22
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.


Sus
 Profil  
Răspuns cu citat  
Afişează mesajele de la anteriorul:  Sortează după  
Scrie un subiect nou Răspunde la subiect  [ 3 mesaje ] 

Ora este UTC + 2 [ DST ]


Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 5 vizitatori


Nu puteţi scrie subiecte noi în acest forum
Nu puteţi răspunde subiectelor din acest forum
Nu puteţi modifica mesajele dumneavoastră în acest forum
Nu puteţi şterge mesajele dumneavoastră în acest forum
Nu puteţi publica ataşamente în acest forum

Căutare după:
Mergi la:  
cron
POWERED_BY
Translation/Traducere: phpBB România