rudolf_kleurenbalk.png

Performance van mappings in OWB

Van tijd tot tijd komt het voor dat mappings in OWB een slechte performance laten zien. Een mapping in OWB ziet eruit als een datastroom en worden daardoor vaak ontwikkeld als datastroom. De uitvoering van de mapping vindt echter plaats door een stored procedure. Deze wordt door OWB gegenereerd. Hierin zit geen datastroom, maar een door OWB gegenereerde query. Deze is vaak zeer complex, waardoor de optimizer van Oracle moeite heeft de query efficient uit te laten voeren.

In de praktijk zijn hier een aantal oorzaken voor aan te wijzen:

  1. De mapping is te complex, waardoor de optimizer niet meer weet wat hij moet doen. De oplossing is opsplitsen. Een goede architect zou het van het begin af al anders ontwerpen. Dit soort problemen is namelijk goed te voorspellen.
  2. De volgorde van de stappen klopt niet. Een voorbeeld is eerst een group by en daarna een filter. Hierdoor wordt overbodige data gesorteerd. 
  3. De optimizer houdt moeite met de gegenereerde query. Dit betekent in de regel dat er performance hints hints toegevoegd moeten worden aan de mapping.

Tip: Negeer performanceproblemen nooit en houd je ETL-processen simpel en gestandaardiseerd. Realiseer je dat je Oracle stored procedures aan het ontwikkelen bent en geen pure datastromen.

scheidingslijntje