[Oracle] SQL Abfrage für über 1000

Nikka

Grünschnabel
Hallo Leute,

habe eine Abfrage über die GUI, die auf die Oracle Datenbank zurückgreift
wenn ich unter 1000 Datensätze habe, liefert mir die Abfrage gleich ein Ergebnis.
Und wenn ich über 1000 Datensätze habe, dann braucht die Applikation Tage, manchmal Wochen
Code ist mit einem
Select
from
where
hinterlegt

Liegt es daran, dass SQL auf 1000 Datensätze beschränkt ist? Weiss jemand wie ich dieses Problem umgehen kann?

Danke und Viele Grüße
Nika
 
Das SQL

SELECT DISTINCT p.matnr_ext
FROM v_srl p,
bigi110 z110,
bigi100 z100,
bigi101 z101
WHERE p.matnr = z110.matnr
AND z110.nr = z100.nr
AND z100.nr = z101.nr
AND z100.KD = 'STG'
AND z100.MUSTER = '505'
AND trim(z100.ORA_LOEKZ) is null;
 
Ist schon ein wenig mehr als ein einfaches select-from-where.
Hast du Indexe?

So spontan folgende 4 Indexe
IDX_110: Index über nr und matnr
IDX_100: Index über nr und kd
IDX_101: Index über nr
IDX_SRL: Index über matnr
 
Und falls die Tabellen sehr unterschiedliche Datenmengen habe, kann man noch viel herumspielen
 
Na ja,

das ist aber alles hochspekulativ.

da scheint doch wohl in bestimmten Konstellationen/bei bestimmten gefundenen z110.matnr der Resultset zu explodieren, wahrscheinlich weil die Bedingung "where p.matnr = z110.matnr" ganz, ganz oft zutrifft.

Und ebenfalls relevant für die Frage "was geht hier schief?" ist, was sich hinter dem "v_srl" verbirgt... das hört sich doch nach einem View an, nicht aber nach einer Tabelle, aus der ich schnell die Kombinationen matnr, matnr_ext abgreifen kann.

Und wieso bei einer Einschränkung auf z100.KD='STG' AND z100.MUSTER='505' dann immer noch über 1000 distincte matnr_ext übrig bleiben... auch merkwürdig.

Kurz gesagt, eine (kurze) Beschreibung der fachlichen Aufgabenstellung wäre zum Voranteiben der Frage sinnvoll.
Denn zur Ermittlung einer distincten 1-Feld-Liste einen JOIN über 3 Tabellen und einen View zu wählen... das hört sich nicht zwingend nach dem einzig möglichen Vorgehen an.

Was soll den fachlich rausfallen/beantwortet werden?
Und wie viele unterschiedliche "matnr_ext" gibt es denn insgesamt, wenn du schon in deinem Resultset über 1000 relevante zurückbekommen kannst?

Grüße
Biber
 

Neue Beiträge

Zurück