PDA

View Full Version : SQL Performance (Time Out)



KingofKning
16-09-13, 12:08
Hallo *all,
wir hatten vor 6 Jahren schon einmal eine interessante Diskussion über SQL Performance. Ich habe zu diesem Thema nochmals eine Frage:
Ich habe eine UDF erstellt, die mir aus einer Datei mit 22 Mio Sätzen den letzten Satz sortiert nach Artikel und Datum absteigend bringen soll. Die PF ist nicht danach geschlüsselt.
Wenn ich denn Select nach einem strsql eingebe sehe ich das er einen Index aufbaut. Wenn ich die Abfrage wieder hole sehe ich das er wieder den Index aufbaut sprich er benutzt da wohl keinen Cache. Rufe ich per SQL die UDF mit dem selben select auf, bekomme ich einen Timeout. (Sehe das er auch dann den Index aufbaut, aber wohl dann abbricht).
Habe mir jetzt eine LF gebaut wo ich das Ergebnis natürlich ratzfatz bekomme, finde es aber unschön für so etwas immer eine LF anzulegen.
Daher, warum benutzt er den ODP nicht bzw. wie kann ich ihn dazubringen länger zu arbeiten, und würde er dann für den kompletten Lauf den Index behalten oder ihn dann auch immer wieder neu machen?

OS V5R4

Fuerchau
16-09-13, 12:33
Bei V5R4 gibts den Systemcache für sowas noch nicht.
Für wiederholbare Abfragen empfielt sich IMMER auch ein Index, gerade wenn auch noch viele Daten vorliegen (bei 1000 Sätzen ist das auch ohne Index noch schnell).

Ein direkter UDF-Timeout ist mir jetzt nicht bekannt, es könnte aber am Abfragezeitlimit (CHGQRYA) liegen, dass deine UDF stirbt.