15.04.2010
20:56

Oracle Performance – Nichts für schwache Nerven

Am Anfang bin ich voller Erwartung und vorurteilsfrei in ein Projekt eingestiegen, das mit Oracle als Basistechnologie gestartet wurde. Ich ging von der Annahme aus, dass sich der Wartungsaufwand ähnlich wie bei einem SQL-Server verhalten würde. Mit dieser Annahme habe ich die Rechnung ohne Oracle gemacht. Im Vergleich zum SQL-Server ist der gefühlte Aufwand um ein Vielfaches höher. Die Werkzeuge die Out of the Box mitgeliefert werden, sind schon sehr gewöhnungsbedürftig, wenn man vorher mit dem SQL Server Management Studio gearbeitet hat.

Was ich sehr speziell fand, war die abweisende Haltung des Datenbankadministrators auf Kundenseite. Nach dem Durchforsten der Literatur im Bereich Performance ist mir klar geworden, dass es in Oracle-Umgebungen der Regelfall sein muss, dass sich Administrator und Entwickler spinnefeind sind, anders kann ich mir die Bemerkungen in den Büchern nicht erklären.

Da ich einerseits die Aufgabe bekam, kritische Abfragen zu optimieren, arbeitete ich mich in das Thema ein (4 Bücher nur zum Thema Oracle Tuning und Performance) und erstellte ein Mind Map. Dieses werde ich auch ständig erweitern.

Bei einer Abfrage, die ich optimieren konnte, habe ich eine Leistungssteigerung von mehr als 4‘500% erreichen können. Das zeigt, dass auf Oracle mit ANSI-SQL schon sehr viel falsch gemacht werden kann.

Was habe ich daraus gelernt

Es gibt Gemeinsamkeiten, die auf Oracle und SQL-Server zu Performance-Problemen führen. Die 3 häufigsten Probleme sind beispielsweise:

  • Fehlende oder falsch gesetzte Indizes/Statistiken
  • Verschachtelte Views
  • Zu viele Joins, wobei hier Oracle meiner Meinung nach früher an die Grenzen stösst

Es gibt aber auch Unterschiede, die es schwierig machen bspw. bei Cursors. Auf einem SQL-Server sollen diese sehr sorgsam eingesetzt werden, da diese zu Leistungseinbussen führen, hingegen kann ein Cursor in Form von FORALL auf Oracle zu einer deutlichen Leistungssteigerung führen.

Quintessenz

Künftig überlege ich mir zweimal, ob ich Wartungs-/Optimierungsaufgaben für einen Oracle-Server übernehme, wenn ich im Projekt auch Entwicklungsaufgaben habe, denn dafür bleibt kaum noch Zeit. Oracle-Administration ist bereits in kleinen Systemumgebungen ein Vollzeitjob.

  •  
  • 0 Kommentar(e)
  •  

Mein Kommentar

Über jeden weiteren Kommentar in diesem Post benachrichtigen.

Zurück

Translate this page

Kategorien

  • [-].NET Development (215)
  • [-]Datenbank (26)
  • HTML (1)
  • Konfiguration (12)
  • Mind Map (10)
  • Off-topic (9)
  • Open Source (3)
  • Qualität (7)
  • Sharepoint (6)
  • Sicherheit (2)

Archiv

Social Bookmarking

Bookmark bei: Mr. Wong Bookmark bei: Webnews Bookmark bei: Icio Bookmark bei: Oneview Bookmark bei: Linkarena Bookmark bei: Favoriten Bookmark bei: Seekxl Bookmark bei: Favit Bookmark bei: Social Bookmarking Tool Bookmark bei: Power Oldie Bookmark bei: Bookmarks.cc Bookmark bei: Newskick Bookmark bei: Newsider Bookmark bei: Linksilo Bookmark bei: Readster Bookmark bei: Folkd Bookmark bei: Yigg Bookmark bei: Digg Bookmark bei: Del.icio.us Bookmark bei: Reddit Bookmark bei: Simpy Bookmark bei: StumbleUpon Bookmark bei: Slashdot Bookmark bei: Netscape Bookmark bei: Furl Bookmark bei: Yahoo Bookmark bei: Spurl Bookmark bei: Google Bookmark bei: Blinklist Bookmark bei: Blogmarks Bookmark bei: Diigo Bookmark bei: Technorati Bookmark bei: Newsvine Bookmark bei: Blinkbits Bookmark bei: Ma.Gnolia Bookmark bei: Smarking Bookmark bei: Netvouz Information