Vizualizare mesaje fără răspuns | Vizualizare subiecte active
|
Pagina 1 din 1
|
[ 3 mesaje ] |
|
Autor |
Mesaj |
MIRCEA BULAI
|
Scris: Mie, 19-Dec-2007 14:21 |
|
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 |
|
|
Costin Albu
|
Scris: Joi, 20-Dec-2007 00:29 |
|
|
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 |
|
|
MIRCEA BULAI
|
Scris: Lun, 07-Ian-2008 14:17 |
|
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 |
|
|
|
Pagina 1 din 1
|
[ 3 mesaje ] |
|
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
|