[53328] in SAPr3-news
Performance-Problem
daemon@ATHENA.MIT.EDU (Jens Hoetger)
Thu Feb 10 09:56:11 2005
To: sapr3-news@mit.edu
Date: Thu, 10 Feb 2005 15:55:30 +0100
From: Jens Hoetger <Jens.Hoetger@de.bosch.com>
Message-ID: <s8tm01ls8okm56elu80fv96v5b1ddu63jv@4ax.com>
Hallo,
wir haben bei einer (eigenentwickelten) Anwendung erhebliche
Performance-Probleme. Das Select-Statement liest bereits "nur" die
benötigten Felder eines Views, beteiligte Tabellen sind MKPF und MSEG.
Der Execution Plan vom Oracle (Version 9...) sieht eigentlich nicht so
schlecht aus:
SQL Statement
SELECT
"MANDT" , "MBLNR" , "MATNR" , "WERKS" , "LGORT" , "BWART" , "ERFMG"
, "LGPLA" , "LGNUM" ,
"LGTYP" , "BUDAT" , "ERFME"
FROM
"/RB04/YL4_V_MKPF"
WHERE
"MANDT" = :A0 AND "MATNR" IN ( :A1 , ..., :A64) AND "WERKS" = :A65
AND "BUDAT" >= :A66 AND "BUDAT" <= :A67 AND "LGORT" = :A68 AND (
"BWART" = :A69 OR "BWART" = :A70
) AND "LGPLA" = :A71
Execution Plan
SELECT STATEMENT ( Estimated Costs = 1 , Estimated #Rows = 1 )
FILTER
NESTED LOOPS
INLIST ITERATOR
TABLE ACCESS BY INDEX ROWID MSEG
INDEX RANGE SCAN MSEG~M
TABLE ACCESS BY INDEX ROWID MKPF
INDEX UNIQUE SCAN MKPF~0
Das Problem scheint der Zugriff auf MSEG zu sein. Die Verwendung des
Index MSEG~M ist nach meiner Einschaetzung (den CBO mal aussen vor)
auch in Ordnung, der CBO liegt da wohl richtig. Die Tabelle enthaelt
ca. 18 Mio Datensaetze, was zugegebenermassen nicht wenig ist, was
sich aber nicht mal eben aendern laesst.
Was mich wundert, sind die lahmen Zugriffszeiten:
Duration Objectname Oper Rec RC Statement
1.416 /X/YL4_V_X PREPARE 0 0 SELECT WHERE "MANDT" ...
18 /X/YL4_V_X OPEN 0 0 SELECT WHERE "MANDT" ...
369951521 /X/YL4_V_X FETCH 677 0
442593250 /X/YL4_V_X FETCH 677 0
137638795 /X/YL4_V_X FETCH 677 0
44856.511 /X/YL4_V_X FETCH 205 1403
Ein Fetch liest soweit ich weiss maximal 32KB Daten. Die benoetigten
Zeiten dafuer sind enorm, ich verstehe nicht, warum das so lange
dauert. Den Index MSEG~M habe ich neu erzeugt, da die Storage Quality
bei 55% lag, aber das hat letzten Endes so gut wie nichts gebracht.
Die Hardware ist eine IBM Regatta irgendwas.
Hat jemand einen Tipp oder eine Idee (Reorganisation der MSEG-Tabelle
bzw. des Tablespaces mal ausgenommen)?
--
Jens Hoetger
-> http://www.scribblepapers.de.vu