Funktionen in SQL sind ein nützliches und beliebtes Feature, das oft und gerne eingesetzt wird. Allerdings wird dabei Performanceaspekten häufig zu wenig Beachtung geschenkt.

Ein Funktionsaufruf oder eine Expression in einer WHERE-Bedingung ist für den Query Optimizer eine Herausforderung und führt oft zu ungeeigneten Ausführungsplänen und somit zu langen Antwortzeiten. Bei PL/SQL-Funktionen, die aus SQL aufgerufen werden, ist die Situation noch einiges komplexer. Falsch eingesetzt, können sie zu massiven Performance-Einbußen führen.

In diesem Vortrag wird gezeigt, welche unterschiedlichen Möglichkeiten es gibt, um den Optimizer bei Funktionsaufrufen zu unterstützen, bessere Ausführungspläne zu generieren. Außerdem wird gezeigt, wie PL/SQL-Funktionen in SQL-Abfragen optimal einsetzt werden können und welche Performancekiller unbedingt vermieden werden sollten. Selbstverständlich wird all dies mit Live-Beispielen und Geschichten aus der Praxis illustriert.