Zitat Zitat von mojo Beitrag anzeigen
OK, das ist doch mal eine gute Aussage!

Noch eine Frage:
Ich habe noch dunkel im Hinterkopf, dass vom SQL-PreCompiler bei der Modulerstellung auch temporäre Indizes erstellt werden, was bei dynamischen SQLs ebenfalls zur Laufzeit gemacht wird und hier die Laufzeit extrem erhöhen kann.
Ist das korrekt oder habe ich sich hier im Hinterkopf etwas verbuchselt?

mojo
- Irgendwelche Indexe legt der Compiler nicht an.
- Zur Compiletime wird ein Accessplan berechnet und in einem Package gespeichert (das ist eine Art vorläufiger prepare).
- Zur Runtime wird entschieden, ob der Accessplan noch verwendet werden soll.
- Static SQL wird zur Compiletime geprüft (soweit möglich)
- Accesspläne werden nach nicht dokumentierten Kriterien (es lohnt nicht drüber nachzudenken wie das im Moment gemacht wird, das kann sich ändern!!!) dirty gesetzt.
- ein statischer Accessplan kann schlechter sein als ein dynamisch ermittelter (das gilt für etliche Käse-Zaubereine)

Meine Empfehlungen:
- einfacher ist immer besser!!!
- Static wegen der Prüfungen bevorzugen
- first make it right
- Performance Optimierung nur wenn es tatsächlich zu langsam ist
- Hauptmaßnahme für Performance Optimierung ist das anlegen erforderlicher Zugriffspfade.
- (fast) alles andere ist Pille-Palle.

D*B