Acum este Joi, 28-Mar-2024 17:01

Ora este UTC + 2 [ DST ]




Scrie un subiect nou Răspunde la subiect  [ 23 mesaje ]  Du-te la pagina Anterior  1, 2
Autor Mesaj
 Subiectul mesajului:
MesajScris: Mie, 26-Oct-2005 17:39 
Neconectat

Membru din: Lun, 20-Oct-2003 08:41
Mesaje: 84
Locaţie: Bucuresti
Mihaela,

Solutia ta e foarte buna, adica pasii pe care i-ai parcurs sunt buni.
Da, aduci intai totul in memorie si apoi faci loop in memorie.
Da, inner join e preferabil unui select imbricat :)

E posibil sa nu fie insa si suficienti.

Ar mai fi un lucru care te poate ajuta, sa cresti chiar si mai mult viteza.

1. Fa selectia pe VBRP (eventual inner join cu VBRK), cu MATNR in clauza where.
2. observa timpii de raspuns.
3. creeaza un index pe VBRP (in standard nu exista) care sa contina campul MATNR.
4. repeta pasul 2. :wink:

Let us know!

_________________
Bogdan CIOC


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Mie, 26-Oct-2005 17:47 
Neconectat

Membru din: Lun, 20-Oct-2003 08:41
Mesaje: 84
Locaţie: Bucuresti
bogdancioc scrie:
E posibil sa nu fie insa si suficienti.


De ce zic asta? Ruleaza in dezvoltare si apoi in quality, sau in productie.

_________________
Bogdan CIOC


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Joi, 27-Oct-2005 11:19 
Neconectat

Membru din: Mie, 29-Oct-2003 16:50
Mesaje: 160
Locaţie: Bucuresti
Salut! :D
Eu am facut select pe VBRK si inner join cu VBRP:))..
La pus index m-am gandit initial, dar am aici o nedumerire. Daca pun un index pe o tabela SAP ce influeanta are asupra celorlate procese din SAP ce folosesc aceasta tabela? Ca eu nu am avut curaj :shock:

_________________
Mi_


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Vin, 28-Oct-2005 11:52 
Neconectat

Membru din: Lun, 20-Oct-2003 08:41
Mesaje: 84
Locaţie: Bucuresti
Buna, Mihaela.

Fii fara frica, pune index daca tu crezi ca iti poate mari viteza unei aplicatii. Procesele de business nu vor suferi nici o schimbare din cauza asta.

Un index e folosit doar daca fraza SQL care se ruleaza pe tabela care il contine are o clauza WHERE de asa natura incat sa solicite acel index, altfel nu.

O tabela poate avea oricat de multi indecsi, pentru ca un index este nimic altceva decat o alta tabela de baze de date, care contine doar campurile selectate de tine ca si componente ale indexului (plus un pointer catre linia din tabela originala care contine aceasta valoare din linia de index), numai ca sortate (in ordine crescatoare, cred).

Cautarea pe tabela, atunci cand clauza WHERE contine campurile din index, va deveni o cautare in tabela index, unde de data aceasta se poate folosi un algoritm de cautare binara, si nu va trebui facuta o scanare secventiala a tabelei, cu comparari succesive, de pilda (aceasta fiind, evident varianta cea mai nerecomandata).

Pe de alta parte, indecsii cresc dimensiunea bazei de date, si scad viteza operatiilor de INSERT (trebuind actualizati corespunzator si toti indecsii asociati, iti dai seama).

Asa incat, ti-as recomanda, daca vrei sa pui indecsi, sa o faci pe acele tabele (campuri din tabele) care sunt interogate des, periodic sau pentru care viteza e un factor primordial (de pilda pentru procese in timp real sau mai stiu eu ce minuni).

Daca raportul tau pe VBRK & VBRP este rulat odata pe luna, de un user ratacit intr-o filiala din colt de tara :D nu te deranja, decat evident daca vrei sa experimentezi.

Daca asta e cazul :) , si orisicum, pentru a scapa de frica de care vorbeai, pune acel index. Pe VBRP nu cred sa existe oricum prea multi indecsi in sistemul vostru.

_________________
Bogdan CIOC


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Vin, 28-Oct-2005 14:20 
Neconectat

Membru din: Mie, 29-Oct-2003 16:50
Mesaje: 160
Locaţie: Bucuresti
Multumesc pt. raspuns !
Acum m-am luminat :).

_________________
Mi_


Sus
 Profil  
Răspuns cu citat  
MesajScris: Mar, 22-Noi-2005 10:55 
Neconectat

Membru din: Mar, 03-Mai-2005 17:10
Mesaje: 3
In cazul in care doresti sa faci un select dupa material din lista cu facturi
trebuie sa folosesti alte tabele care exista in sap si care sunt indexate corespunzator. NU s-a intrebat nimeni poate de ce in tranzactia VF05 selectia se face obligatoriu dupa un camp - cod partener sau material. Raspunsul e simplu, ptr ca SAP a avut grija sa construiasca paralel 2 tabele indexate dupa cod partener si dupa material
VRKPA - index dupa partener
VRPMA - index dupa material


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului: Vizualizare vanzari
MesajScris: Mar, 09-Mai-2006 15:15 
Neconectat

Membru din: Mie, 12-Ian-2005 10:41
Mesaje: 22
Hi, Mihaela.
Nu stiu daca subiectul mai e de actualitate , insa o fraza select de tipul celei de mai jos a durat cel mult 90-120 secunde pt circa 400 000 articole
*
SELECT VBRP~ARKTX VBRP~BRGEW VBRP~FKIMG VBRP~GEWEI VBRP~MATNR
VBRP~MEINS VBRP~NTGEW VBRP~VBELN VBRP~NETWR VBRP~WAVWR
VBRP~KZWI1 VBRP~MATKL VBRP~KURSK VBRP~FKLMG VBRP~VRKME
VBRP~PRSDT VBRK~VTWEG VBRK~KUNAG VBRK~FKART
VBRK~FKDAT VBRK~REGIO VBRK~VTWEG VBRK~FKSTO VBRP~SPART
VBRP~UMVKN VBRP~UMVKZ VBRK~WAERK VBRK~KNUMV VBRP~POSNR
VBRP~AUFNR VBRK~MWSBK
INTO CORRESPONDING FIELDS OF TABLE FACTURI
FROM ( VBRP INNER JOIN VBRK
ON VBRP~VBELN = VBRK~VBELN )
WHERE ( VBRK~FKDAT >= PERIOADA-LOW AND VBRK~FKDAT <= PERIOADA-HIGH )
AND VBRP~WERKS = '0100'
AND VBRP~SPART IN DIVIZIA
AND VBRK~KUNAG IN CLIENT
AND VBRP~LGORT IN DEPOZIT
AND VBRP~MATNR IN MATERIAL
AND ( VBRK~FKART LIKE 'F2%' OR
VBRK~FKART LIKE 'L2%' OR
VBRK~FKART LIKE 'G2%' OR
VBRK~FKART LIKE 'RE%' OR
VBRK~FKART LIKE 'S1%' OR
VBRK~FKART LIKE 'S2%' OR
VBRK~FKART LIKE 'ZG2%' OR
VBRK~FKART LIKE 'ZS1%' OR
VBRK~FKART LIKE 'ZS2%' ).

Mai greu e de optimizat o fraza Select pe tabela GLPCA, care la 8 000 000 dureaza peste 5 minute.


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului: Re:
MesajScris: Mie, 24-Mar-2010 17:43 
Neconectat

Membru din: Mar, 23-Mar-2010 18:43
Mesaje: 4
bogdancioc scrie:
Buna, Mihaela.

Fii fara frica, pune index daca tu crezi ca iti poate mari viteza unei aplicatii. Procesele de business nu vor suferi nici o schimbare din cauza asta.
....

Daca asta e cazul :) , si orisicum, pentru a scapa de frica de care vorbeai, pune acel index. Pe VBRP nu cred sa existe oricum prea multi indecsi in sistemul vostru.


Frumos raspuns. Multumesc si eu.


Sus
 Profil  
Răspuns cu citat  
Afişează mesajele de la anteriorul:  Sortează după  
Scrie un subiect nou Răspunde la subiect  [ 23 mesaje ]  Du-te la pagina Anterior  1, 2

Ora este UTC + 2 [ DST ]


Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 1 vizitator


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:  
POWERED_BY
Translation/Traducere: phpBB România